QComboBox nutzen um Variablen zu setzen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
AlphaX2
User
Beiträge: 53
Registriert: Dienstag 28. Juni 2011, 10:42

Hallo Leute,

also ich bin noch Anfänger und ich habe ein kleines Programm geschrieben, dabei wird die Oberfläche mit einem ui File zur Laufzeit geladen.
Das Problem ist, dass ich eine QComboBox mit zwei Einträgen habe (Deutschland und Schweiz/Österreich), je nach Auswahl soll nun eine Variable gesetzt werden. Die Box heißt laender_box. Allerdings weiß ich nicht wie das geht, die Box mit der de_nums() Funktion zu verbinden.

im Moment habe ich folgendes, weiß aber nicht weiter:

Code: Alles auswählen

self.ui.laender_box.???.connect(self, de_nums)
Mir fehlt also quasi ein kleines Stück Code, bei einem QLabel wäre es ja bspw. setText("BLA") - was muss ich für die QComboBox nehmen?! Oder Alternativ, wie kann ich eine Variable setzen?!

Danke schonmal.

AlphaX2
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Ein Blick in die Dokumentation sollte eigentlich genügen :wink:
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
AlphaX2
User
Beiträge: 53
Registriert: Dienstag 28. Juni 2011, 10:42

Hi,

hab ich leider nicht dazu geschrieben ich hab schon mit activated() und highlighted() experimentiert, aber wenn ich den Text richtig verstehe soll man die Index Position als integer übergeben - sprich einfach nur 1 bzw. 2, oder?!

Weil wenn ich das probiere komme ich immer zu folgendem Ergebnis:

Code: Alles auswählen

self.ui.laender_box.activated(1).connect(self, de_nums)		
TypeError: native Qt signal is not callable
AlphaX2
BlackJack

@AlphaX2: Da hast Du den Text und Signals/Slots falsch verstanden. Du kannst den Index doch gar nicht angeben — den sucht der Benutzer doch zur Laufzeit aus, in dem er die ComboBox in der GUI benutzt. Die Funktion, mit der Du das Signal verbindest, muss den Index, den der Benutzer ausgewählt hat, als Argument erwarten.
AlphaX2
User
Beiträge: 53
Registriert: Dienstag 28. Juni 2011, 10:42

Was!? Ich hab gedacht ich würde das so in dem Sinne angeben: Eintrag 1 löst Funktion A aus Eintrag 2 löst Funktion B aus.

Aber jetzt weiß ich gleich gar nicht mehr was ich da machen soll. :cry:
Gibts irgendwo ein Beispiel oder so, also ein Python Code?!

EDIT: Ich habs nochmal gelesen und ein Beispiel gefunden und jetz so gelöst:

Code: Alles auswählen

self.ui.laender_box.activated.connect(self.sprache)
Trotzdem Danke!

AlphaX2
Zuletzt geändert von AlphaX2 am Freitag 1. Juli 2011, 16:05, insgesamt 1-mal geändert.
BlackJack

In der Dokumentation gibt es auch Quelltext: New-style Signal and Slot Support.
Antworten