我有一个由 textChanged-Signal 触发的线程。线程修改了文本,这再次触发了修改文本的线程……然后 python 崩溃了。 所以我想断开该线程的信号,并在修改文本后,重新连接信号。
我需要指定要断开哪个插槽,因为有多个插槽正在监听“textChanged()”。
我收到“参数与任何重载调用都不匹配” - 断开连接部分出现错误。第一次连接有效,简单。重新连接可能有效,也可能无效,由于第一个错误,我无法到达那里。
如何正确调用连接/断开连接?
class A:
self.textedit=QTextEdit()
self.textedit.setText("Bla")
self.connect(self.textedit, SIGNAL("textChanged()"), self.refresh)
self.thread=Worker(self)
def refresh(self):
self.thread.start()
class Worker:
def __init__(self, A)
self.A=A
def run(self):
self.A.disconnect("textChanged()", self.A.refresh)
.
. do sth.
. self.A.textedit.setText("modified Bla")
self.A.connect(self.A.textedit, SIGNAL("textChanged()"), self.A.refresh)
断开连接时,代码中没有
self.A.textedit
:
self.A.disconnect(self.A.textedit, "textChanged()", self.A.refresh)