Heim > Artikel > Backend-Entwicklung > Wie kann ich zusätzliche Argumente an PyQt-Slot-Verbindungen übergeben?
Frage:
Ist es möglich, zusätzliche Variablen über Slots zu übergeben, um das Verhalten zu ändern? des Verbundenen Funktion?
Antwort:
Ja, es gibt zwei Methoden, um dies zu erreichen:
Verwenden Sie ein Lambda Funktion innerhalb der Verbindungsmethode, um zusätzliche Argumente an die Slot-Funktion zu übergeben.
self.buttonGroup.buttonClicked['int'].connect(lambda i: self.input(i, "text")) @pyqtSlot(int) def input(self, button_or_id, DiffP): ...
In diesem Beispielsweise wird das zusätzliche Argument „text“ mithilfe der Lambda-Funktion an die Eingabe-Slot-Funktion übergeben.
Verwenden Sie die Funktion functools.partial, um zusätzliche Argumente an die Slot-Funktion zu binden bevor die Verbindung hergestellt wird.
from functools import partial ... self.buttonGroup.buttonClicked['int'].connect(partial(self.input, "text")) @pyqtSlot(int) def input(self, DiffP, button_or_id): ...
In diesem Beispiel wird das zusätzliche Argument „text“ mithilfe des Partials an die Eingabeslot-Funktion gebunden Funktion.
Mit beiden Methoden können Sie zusätzliche Informationen an Slot-Funktionen übergeben, was eine größere Flexibilität und Anpassung in Ihren Qt-Anwendungen ermöglicht.
Das obige ist der detaillierte Inhalt vonWie kann ich zusätzliche Argumente an PyQt-Slot-Verbindungen übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!