我将使用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)
我研究了这个问题,发现一个建议是使用disconnect函数,但是在PyQt5中找不到它。
self.IP.textChanged.disconnect()
输出错误:
TypeError: disconnect() failed between 'textChanged' and all its connections
(完整的代码太长了,无法在这里粘贴,但如果您需要其他部分,请告诉我。)
textChanged
信号(QTextEdit
)被触发时,新的文本(s
参数)不会传递到插槽中:http://doc.qt.io/qt-5/qtextedit.html#textChanged vs http://doc.qt.io/qt-5/qlineedit.html#textChanged - FJSevilla