argumente bei menuaufruf übergeben

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Lasse
User
Beiträge: 112
Registriert: Donnerstag 3. Februar 2011, 18:25

Ich erstelle ein Menüaktion und möchte die Funktion mit einem Argument aufrufen. (In diesem Fall die Sprache) Allerdings weiß ich nicht wie ich Argumente an die Funktion übergeben kann.

Code: Alles auswählen

languages = ["Deutsch", "English", ...]
for language in languages
    menuLanguage.addAction("language", changeLanguage)
Die Funktion stark vereinfacht.

Code: Alles auswählen

def changeLanguage(language):
    print(language)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

So geht das nicht! Eine QAction verbindet man über Signale mit einem Slot. Genau wie so ziemlich alles andere bei Qt auch ;-) Die Signatur von QAction, wie Du sie da angibst, existiert ja auch gar nicht.

Die Hauptschwierigkeit besteht darin, dass man bei vielen gleichartigen Elementen (können auch Ui-Elemente sein, s. dazu auch: Thread) nicht x-Slots und x separate connect-Statements schreiben möchte, sondern stattdessen einen Bezug zum Ausgangsmodell mit übergeben möchte. In diesem Falle ist das ebene eine Liste, bei der man einfach den Index übergeben kann.

Hier mal mein Vorschlag: Link
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Lasse
User
Beiträge: 112
Registriert: Donnerstag 3. Februar 2011, 18:25

Danke, für die schnelle Hilfe! Praktisches Ding, dieses partial!
Antworten