シグナルをPyQt4のメソッドに接続するのに問題があります。オブジェクトAのバインドされたシグナルをオブジェクトBのメソッドに接続することはできますが、オブジェクトAのバインドされたシグナルを自己のメソッド(接続が行われるオブジェクト)に接続することはできません。
何が間違っていますか?下記参照:
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class FooA(QObject):
trigger=pyqtSignal(str)
def receive_trigger(self,a):
print'triggered in FooA, string',a
class MainObj(QObject):
def __init__(self):
self.a1=FooA()
self.a2=FooA()
#I can connect signals and methods of separate objects:
self.a1.trigger.connect(self.a2.receive_trigger)
self.a1.trigger.emit('hi')
#... but I can't connect a signal with a method of self
self.a1.trigger.connect(self.receive_trigger)
self.a1.trigger.emit('hi')
def receive_trigger(self,a):
print 'triggered in MainObj'
MainObj()として実行されます
FooAでトリガー、文字列hi FooAでトリガー、文字列hi
>MainObjでトリガーされた追加の行が表示されることを期待していました
前もって感謝します。明細書