Ok ich suchte im Internet und ich fand irgendwie eine Lösung und einige interessante Dinge.
Zuerst, wenn ich emit()
verwende, muss ich die Überladung angeben, indem Sie den Typ angeben.
Zum Beispiel in meinem obigen Beispiel, wenn ich das Signal für str
Version ausgeben möchte, muss ich self.buttonClicked[str].emit('soru')
aufrufen. Zweitens, ich muss die überladene Version Detail angeben, wenn es str
oder int
beim Anschließen des Signals mit dem Steckplatz. Wie self.buttonClicked[str].connect(showDialog)
. So
wenn jetzt emittieren I 2 Signale speziell:
self.buttonClicked[str].emit('soru')
self.buttonClicked[int].emit(23)
Dann nur str
Version Showdialog aufrufen. Jetzt gebe ich nicht die überladene Version, wenn wie Verbindungs:
self.buttonClicked.connect(showDialog)
Dann werden nur die überladene Version, die zuerst angegeben wurde, als die pyqtSignal([int],[str])
Erstellung aufgerufen. Hier wird nur die 'int' Version mit dem Slot verbunden.
Quelle: source