Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich in Python zusätzliche Argumente an Qt-Slots übergeben?

Wie kann ich in Python zusätzliche Argumente an Qt-Slots übergeben?

Barbara Streisand
Barbara StreisandOriginal
2024-12-02 08:58:18719Durchsuche

How Can I Pass Extra Arguments to Qt Slots in Python?

Übergabe zusätzlicher Argumente über die Slots von Qt

Die Übergabe von Variablen an Slots über Signale kann für die Anzeige bestimmter Texte oder Daten nützlich sein. Im angegebenen Python-Code besteht das Ziel darin, die Variable DiffP von der Suchdateifunktion an den Eingabeslot zu übergeben. Hier sind zwei Möglichkeiten, dies zu erreichen:

1. Verwenden von Lambda-Funktionen

Mit Lambda-Funktionen können Sie zusätzliche Argumente an einen Slot übergeben:

self.buttonGroup.buttonClicked['int'].connect(lambda i: self.input(i, "text"))

Diese Lambda-Funktion übergibt die Schaltflächen-ID (i) als erstes Argument und die zusätzliches Argument „text“ als zweites Argument für den Eingabeslot.

2. Verwenden von functools.partial

Die Funktion functools.partial kann auch verwendet werden, um zusätzliche Argumente an einen Slot zu binden:

from functools import partial

...
self.buttonGroup.buttonClicked['int'].connect(partial(self.input, "text"))

Dieser Ansatz bindet das Argument „text“ an den erster Parameter des Eingabeslots, sodass die Schaltflächen-ID als zweiter Parameter übergeben werden kann.

Mit beiden Methoden können Sie weitere übergeben Argumente in den Eingabeslot, sodass Sie die DiffP-Variable oder jeden anderen gewünschten Text drucken können.

Das obige ist der detaillierte Inhalt vonWie kann ich in Python zusätzliche Argumente an Qt-Slots übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn