问题
在PyQt写自定信号的时候,发现一个问题,如果想要定义自己的自定义信号大抵可以这么写
mysignal = pyqtSignal(str)
但是有一个问题就是,这句话所在的类必须是QObject,有的时候所在的类不是这个咋解决呢?以下提出俩种解决方法
1.利用多重继承
如定义一个类
class theSon(father, QObject):
def __init__(self):
super(father, self).__init__()
...
theSon类可以利用双继承,既保持father所在的属性,也拥有QObject所有的属性,即能解决上述问题。
2.重新定义一个类
定义一个信号类,用来存变量。使用的类只访问其中的变量即可。
class mySignal(QObject): #定义一个信号类
signal = pyqtSignal(str)
class A():
def _init__(self):
self.signal = mySignal() #自定义信号
self.signal.signal.connect(xxxxxx) #信号的连接