2016-04-25 9 views
0

QGroupBox hat das Signal clicked mit einem optionalen checked Parameter. Angenommen, ich versuche, einen Steckplatz innerhalb einer Klasse wie folgt zu verbinden: box.clicked.connect(self.func), also muss die Deklaration des Steckplatzes def func(self, checked) sein, aber func wird mit nur einem Argument aufgerufen. Wie bekomme ich das gewünschte Verhalten von func mit beiden selbst und den optionalen checked Argumente aufgerufen?PySide-Signal mit Argument

Antwort

1

Das Verhalten von Signalen mit optionalen Standardparametern unterscheidet sich zwischen PyQt und PySide. In PyQt ist der Standardparameter immer geschickt, aber in pyside Sie müssen explizit anfordern es:

box.clicked[bool].connect(self.func) 

Dies ist ein viel besseres Design Wahl, würde ich sagen, wie das PyQt Verhalten oft zu Fehlern führen kann Wenn Sie vergessen, dass ein Standardwert gesendet wird, obwohl Sie nicht danach gefragt haben. Ein Fall, in dem explizit besser als implizit ist ...