【发布时间】:2017-11-27 14:54:06
【问题描述】:
我正在使用 Python3 和 PyQt5 创建一个应用程序,其中包含 QLineEdit 和 QTextEdit 等表单元素。
我从QLineEdit 收集数据如下(这工作正常):
self.rolAdi = QtWidgets.QLineEdit(self.centralWidget)
self.rolAdi.setObjectName("rolAdi")
self.rolAdi.textChanged.connect(self.textSonDurum)
def textSonDurum(self, s):
print("Text changed...>>> "+s)
但是,使用 QTextEdit 控件的相同方法不起作用 - 只要我更改控件的内容,程序就会停止:
self.IP = QtWidgets.QTextEdit(self.centralWidget)
self.IP.setObjectName("IP")
self.IP.textChanged.connect(self.textSonDurum)
def textSonDurum(self, s):
print("Text changed...>>> "+s)
我研究了这个问题,发现了一个涉及使用断开功能的建议,但在 PyQt5 中找不到。
self.IP.textChanged.disconnect()
输出错误:
TypeError: disconnect() failed between 'textChanged' and all its connections
(完整的代码很长,在这里粘贴,如果您需要任何其他部分,请告诉我)。
【问题讨论】:
-
当
textChanged信号(QTextEdit)被引发时,新文本(s参数)不会传递给插槽:doc.qt.io/qt-5/qtextedit.html#textChanged 与 doc.qt.io/qt-5/qlineedit.html#textChanged
标签: python pyqt5 signals-slots qtextedit