2017-07-10 3 views

Antwort

0

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

Verwandte Themen