Я хочу создать приложение для чата, когда пользователь, набравший URL или текст письма, станет гиперссылкой google.com
/ abc123@gmail.com
, похожей на Whatsapp и Facebook Messenger.Но теперь мой код не может ничего напечатать, получит ошибку:
RecursionError: превышена максимальная глубина рекурсии в сравнении. Неустранимая ошибка Python: невозможно восстановить после переполнения стека.
Я понятия не имею, как решить эту проблему.Я исследую, Google не получает никакой помощи для меня.
from PyQt5 import QtCore, QtGui, QtWidgets
import re
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.textBrowser = QtWidgets.QTextBrowser(Form)
self.textBrowser.setGeometry(QtCore.QRect(20, 10, 361, 192))
self.textBrowser.setObjectName("textBrowser")
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(300, 220, 93, 28))
self.pushButton.setObjectName("pushButton")
self.textEdit = QtWidgets.QTextEdit(Form)
self.textEdit.setGeometry(QtCore.QRect(20, 210, 271, 41))
self.textEdit.setObjectName("textEdit")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
self.pushButton.clicked.connect(self.getvalue)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.pushButton.setText(_translate("Form", "PushButton"))
def getvalue(self,email):
s = self.textEdit.toPlainText()
p = re.match("^.+@(\[?)[a-zA-Z0-9-.]+.([a-zA-Z]{2,3}|[0-9]{1,3})(]?)$",str (email))
q = re.compile("^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$",re.IGNORECASE)
if (p != None and self.getvalue(s) == True):
links ='{1}'.format(('mailto:'+s), s)
self.textBrowser.setOpenExternalLinks(True)
self.textBrowser.setText(links)
print("s")
elif (q != None and self.getvalue(s) == True):
link ='{1}'.format(('http://'+s), s)
self.textBrowser.setOpenExternalLinks(True)
self.textBrowser.setText(link)
print("t")
else:
self.textBrowser.append(s)
print("u")
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_Form()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Цитата
Результат:
Traceback (самая последняявызовите последний): файл "c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd_vendored \ pydevd_pydevd_bundle \ pydevd_trace_dispatch_regular.py", строка 373, в call если не is_stepping и frame_cache_key в cache_skips: RecursionError: превышена максимальная глубина рекурсии в сравнении Неустранимая ошибка Python: невозможно восстановить из-за переполнения стека.
Поток 0x00003700 (самый последний вызов в первую очередь): Файл "c: \ Users\ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd_vendored \ pydevd \ pydevd.py ", строка 176 в файле _on_run" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd_vendored \ pydevd_pydevd_bundle \ pydevd_comm.py ", строка 203 в рабочем файле" C: \ Program Files (x86) \ Python37-32 \ lib \ threading.py ",строка 917 в _bootstrap_inner
Файл "C: \ Program"Файлы (x86) \ Python37-32 \ lib \ threading.py ", строка 885 в файле _bootstrap" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd_vendored\ pydevd_pydev_bundle \ pydev_monkey.py ", строка 626 в call
Thread 0x000029a4 (самый последний вызов в первую очередь): файл" C: \ Program Files (x86) \ Python37-32 \ lib \threading.py ", строка 300 в файле ожидания Файл" C: \ Program Files (x86) \ Python37-32 \ lib \ threading.py ", строка 552 в файле ожидания" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd_vendored \ pydevd \ pydevd.py ", строка 154 в файле _on_run" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \pythonFiles \ lib \ python \ ptvsd_vendored \ pydevd_pydevd_bundle \ pydevd_comm.py ", строка 203 в рабочем файле" C: \ Program Files (x86) \ Python37-32 \ lib \ threading.py ", строка 917 в _bootstrap_inner
файл"C: \ Program Files (x86) \ Python37-32 \ lib \ threading.py ", строка 885 в файле _bootstrap" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \lib \ python \ ptvsd_vendored \ pydevd_pydev_bundle \ pydev_monkey.py ", строка 626 в вызов
поток 0x00003c94 (самый последний вызов первый): файл" c: \ Users \ User.vscode \ extensions\ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ wrapper.py ", строка 383 в файле recv" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1\ pythonFiles \ lib \ python \ ptvsd_vendored \ pydevd_pydevd_bundle \ pydevd_comm.py ", строка 273 в файле _on_run" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd\ pydevd_pydevd_bundle \ pydevd_comm.py ", строка 203 в рабочем файле" C: \ Program Files (x86) \ Python37-32 \ lib \ threading.py ", строка 917 в _bootstrap_inner
файл" C: \ Program Files (x86)) \ Python37-32 \ lib \ threading.py ", строка 885 в _bootstrap
Thread 0x00001318 (сначала последний вызов): файл" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ ipcjson.py ", строка 112 в файле _send" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ ipcjson.py ", строка 279 в файле send_event" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \python \ ptvsd \ wrapper.py ", строка 2558 в файле on_pydevd_cmd_write_to_console2" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ wrapper.py ", строка1386 в файле on_pydevd_event"c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ session.py", строка 181 в файле handle_pydevd_message "c: \ Users \ User.vscode \extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ daemon.py ", строка 531 в файле _handle_pydevd_message" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ wrapper.py ", строка 423 в отправляемом файле" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd_vendored \pydevd_pydevd_bundle \ pydevd_comm.py ", строка 522 в отправляемом файле" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd_vendored \ pydevd_pydevd_bundle \ pydevd_comm.py "365 в файле _on_run "c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd_vendored \ pydevd_pydevd_bundle \ pydevd_comm.py", строка 203 в рабочем файле "C: \"Программные файлы (x86) \ Python37-32 \ lib \ threading.py ", строка 917 в _bootstrap_inner
Файл" C: \ Program Files (x86)\ Python37-32 \ lib \ threading.py ", строка 885 в _bootstrap
Thread 0x00002658 (сначала последний вызов): файл" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ ipcjson.py ", строка 131 в файле _buffered_read_line_as_ascii" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ptvsd \ ipcjson.py ", строка 172 в файле _wait_for_message" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ ipcjson.py ", строка 318 вФайл process_one_message "c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ ipcjson.py", строка 305 в файле process_messages "c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ wrapper.py ", строка 906 в файле process_messages" C: \ Program Files (x86) \ Python37-32 \ lib \ threading.py ", строка 865 в рабочем файле" C: \ Program Files (x86) \ Python37-32 \ lib \ threading.py ", строка 917 в файле _bootstrap_inner" C: \ Program Files (x86)\ Python37-32 \ lib \ threading.py ", строка 885 в _bootstrap
Thread 0x00000df0 (сначала последний вызов): файл" C: \ Program Files (x86) \ Python37-32 \ lib \ threading.py ", строка 300 в файле ожидания Файл" C: \ Program Files (x86) \ Python37-32 \ lib \ threading.py ", строка 552 в файле ожидания" c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ futures.py ", строка 106 в файле run_forever" C: \ Program Files (x86) \ Python37-32 \ lib \ threading.py ", строка 865 в файле запуска«C: \ Program Files (x86) \ Python37-32 \ lib \ threading.py», строка 917 в файле _bootstrap_inner «C: \ Program Files (x86) \ Python37-32 \ lib \ threading.py», строка 885 в_bootstrap
Текущий поток 0x00001154 (последний вызов сначала): файл "c: \ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd_vendored \ pydevd_pydevd_bundle \pydevd_trace_dispatch_regular.py ", строка 373 в вызов Файл" C: \ Program Files (x86) \ Python37-32 \ lib \ enum.py ", строка 607 в значении Файл" C: \ Program Files (x86)) \ Python37-32 \ lib \ types.py ", строка 171 в get Файл" C: \ Program Files (x86) \ Python37-32 \ lib \ re.py ", строка 274 в _compile
Файл "C: \ Program Files (x86) \ Python37-32 \ lib \ re.py", строка 234 в файле компиляции "c: \ Users \ Пользователь \ Desktop \ python \ test.py", строка 42 в файле getvalue "c: \ Users \ User \ Desktop \ python \ test.py ", строка 48 в getvalue Файл" c: \ Users \ User \ Desktop \ python \ test.py ", строка 48 в getvalue ...