Python 如何在PyQT中的类之间连接pyqtSignal

Python 如何在PyQT中的类之间连接pyqtSignal,python,pyqt,pyqt4,Python,Pyqt,Pyqt4,如何正确连接两个不同对象(类)之间的pyqtSignal?我指的是最佳实践 看看我为实现这个目标做了些什么:当Pot升高其温度时,温度计类会收到通知: from PyQt4 import QtCore class Pot(QtCore.QObject): temperatureRaisedSignal = QtCore.pyqtSignal() def __init__(self, parent=None): super(Pot, self).__init__

如何正确连接两个不同对象(类)之间的
pyqtSignal
?我指的是最佳实践

看看我为实现这个目标做了些什么:当
Pot
升高其温度时,
温度计
类会收到通知:

from PyQt4 import QtCore

class Pot(QtCore.QObject):
    temperatureRaisedSignal = QtCore.pyqtSignal()

    def __init__(self, parent=None):
        super(Pot, self).__init__(parent)
        self.temperature = 1
    def Boil(self):
        self.temperature += 1
        self.temperatureRaisedSignal.emit()
    def RegisterSignal(self, obj):
        self.temperatureRaisedSignal.connect(obj)

class Thermometer():
    def __init__(self, pot):
        self.pot = pot
        self.pot.RegisterSignal(self.temperatureWarning)
    def StartMeasure(self):
        self.pot.Boil()
    def temperatureWarning(self):
        print("Too high temperature!")

if __name__ == '__main__':
    pot = Pot()
    th = Thermometer(pot)
    th.StartMeasure()
或者有没有更简单/更好的方法

我还坚持(如果可能的话)使用“新”风格的PyQt信号

from PyQt4 import QtCore

class Pot(QtCore.QObject):

    temperatureRaisedSignal = QtCore.pyqtSignal()

    def __init__(self, parent=None):
        QtCore.QObject.__init__(self)
        self.temperature = 1

    def Boil(self):
        self.temperatureRaisedSignal.emit()
        self.temperature += 1

class Thermometer():
    def __init__(self, pot):
        self.pot = pot
        self.pot.temperatureRaisedSignal.connect(self.temperatureWarning)

    def StartMeasure(self):
        self.pot.Boil()

    def temperatureWarning(self):
        print("Too high temperature!")

if __name__ == '__main__':
    pot = Pot()
    th = Thermometer(pot)
    th.StartMeasure()
根据文档,我会这样做: