Wie pyqtSignal zwischen Klassen in PyQT verbinden
Wie verbinde ich michpyqtSignal
zwischen zwei verschiedenen Objekten (Klassen) RICHTIG? Ich meine Best Practice.
Sehen Sie, was ich getan habe, um das Ziel zu erreichen: DieThermometer
class wird benachrichtigt, wennPot
erhöht seine Temperatur:
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()
Oder gibt es eine einfachere / bessere Möglichkeit?
Ich bestehe auch (wenn möglich) darauf, PyQt-Signale im "neuen" Stil zu verwenden.