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)