我想做一个聊天应用程序,当用户键入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_())
Blockquote
结果:
回溯(最近通话最近):文件 “ 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行,在致电中 如果不是,则在cache_skips中为is_stepping和frame_cache_key:RecursionError:在比较中超过最大递归深度致命 Python错误:无法从堆栈溢出中恢复。
线程0x00003700(最新呼叫优先):文件 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd_vendored \ pydevd \ pydevd.py”, _on_run文件中的第176行 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd_vendored \ pydevd_pydevd_bundle \ pydevd_comm.py”, 运行文件“ C:\ Program Files中的第203行” (x86)\ Python37-32 \ lib \ threading.py“,_ bootstrap_inner中的第917行
中的第626行
文件“ 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”, 致电线程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”, _on_run文件中的第154行 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd_vendored \ pydevd_pydevd_bundle \ pydevd_comm.py”, 运行文件“ C:\ Program Files中的第203行” (x86)\ Python37-32 \ lib \ threading.py“,_ bootstrap_inner中的第917行
中的第626行
文件“ 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”, 致电线程0x00003c94(最近调用优先):文件 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ wrapper.py”, recv文件中的第383行 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd_vendored \ pydevd_pydevd_bundle \ pydevd_comm.py”, _on_run文件中的第273行 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd_vendored \ pydevd_pydevd_bundle \ pydevd_comm.py”, 运行文件“ C:\ Program Files中的第203行” (x86)\ Python37-32 \ lib \ threading.py“,_ bootstrap_inner中的第917行
中
文件“ C:\ Program Files(x86)\ Python37-32 \ lib \ threading.py”,行885 在_bootstrap线程0x00001318(最近调用优先):文件 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ ipcjson.py”, _send文件中的第112行 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ ipcjson.py”, send_event文件中的第279行 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ wrapper.py”, on_pydevd_cmd_write_to_console2文件中的第2558行 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ wrapper.py”, on_pydevd_event文件中的第1386行 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ session.py”, handle_pydevd_message文件中的第181行 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ daemon.py”, _handle_pydevd_message文件中的第531行 “ 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”, _on_run文件中的第365行 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd_vendored \ pydevd_pydevd_bundle \ pydevd_comm.py”, 运行文件“ C:\ Program Files中的第203行” (x86)\ Python37-32 \ lib \ threading.py“,_ bootstrap_inner中的第917行
中
文件“ C:\ Program Files(x86)\ Python37-32 \ lib \ threading.py”,行885 在_bootstrap线程0x00002658(最新调用优先):文件 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ ipcjson.py”, _buffered_read_line_as_ascii文件中的第131行 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ ipcjson.py”, _wait_for_message文件中的第172行 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ ipcjson.py”, process_one_message文件中的第318行 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ ipcjson.py”, process_messages文件中的第305行 “ c:\ Users \ User.vscode \ extensions \ ms-python.python-2018.12.1 \ pythonFiles \ lib \ python \ ptvsd \ wrapper.py”, process_messages文件“ C:\ Program Files中的第906行” (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”,_ bootstrap中的第885行
线程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”, run_forever文件“ C:\ Program Files中的第106行 (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”,_ bootstrap中的第885行
当前线程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”,值文件“ C:\ Program中的第607行 文件(x86)\ Python37-32 \ lib \ types.py”,获取文件中的第171行 _compile中的“ C:\ Program Files(x86)\ Python37-32 \ lib \ re.py”行274
文件“ C:\ Program Files(x86)\ Python37-32 \ lib \ re.py”,位于第234行 编译文件“ c:\ Users \ User \ Desktop \ python \ test.py”,位于第42行 getvalue文件“ c:\ Users \ User \ Desktop \ python \ test.py”,第48行 getvalue文件“ c:\ Users \ User \ Desktop \ python \ test.py”,第48行 getvalue ...