我使用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(完整的代码在这里粘贴非常长,但是如果您需要其他部分,请告诉我)。
发布于 2017-11-27 18:28:52
QTextEdit textChanged信号与QLineEdit textChanged信号有不同的签名,因为它不传递被更改的文本。这是因为QTextEdit支持富文本(即html)和纯文本,因此您需要显式地请求所需的内容类型:
self.IP.textChanged.connect(self.textSonDurum)
def textSonDurum(self):
print("Text changed...>>> " + self.IP.toPlainText())https://stackoverflow.com/questions/47513816
复制相似问题