combobox

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Alter Mann
User
Beiträge: 8
Registriert: Donnerstag 14. September 2023, 18:33

Hallo Forum,
da ich Neuling bin, sei mir folgende Frage gestattet: Kann oder muss ich ein erledigtes Thema als erledigt markieren? Wo?

Nun meine eigentliche Frage:
Wie kann ich eine Combobox bei Fokuserhalt aufklappen?

Vielen Dank vorab und viele Grüße

Manfred
Benutzeravatar
sparrow
User
Beiträge: 4510
Registriert: Freitag 17. April 2009, 10:28

Zu 1: Die Option gibt es hier nicht.

Zu 2: Da fehlt leider der nötige Kontext. Welches GUI Framework wird verwendet? Wie sieht dein Code dafür aus?
Benutzeravatar
__blackjack__
User
Beiträge: 13933
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Mir ist auch die Frage nicht ganz klar. Wenn man eine Widget benutzt hat das den Fokus. Das ist ja der Sinn vom Fokus. Was ist das eigentliche Problem das hier gelöst werden soll?
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
Alter Mann
User
Beiträge: 8
Registriert: Donnerstag 14. September 2023, 18:33

Hallo Black Jack,

ich arbeite mit PyCharm.

Code: Alles auswählen

# Kombinationsfelder anlegen
selected_sex = tk.StringVar()
sex_combo = ttk.Combobox(cF, textvariable=selected_sex, width=15)
sex_combo['values'] = ["Bitte wählen", "männlich", "weiblich"]
sex_combo.grid(row=2, column=7)
sex_combo.focus_force()  # Fokus auf die Combobox setzen
Bei Fokuserhalt, soll die Combobox automatisch aufklappen

Vielen Dank für die Hilfe vorab

Viele Grüße Manfred
Benutzeravatar
peterpy
User
Beiträge: 188
Registriert: Donnerstag 7. März 2013, 11:35

Hallo Manfred,

Willst Du nicht das OptionMenu verwenden?

Code: Alles auswählen

import tkinter as tk

def erstelle_auswahl(root):
    titel = 'Geschlecht'
    variable = tk.StringVar()
    auswahl = tk.OptionMenu(root, variable, 'männlich', 'weiblich',
                            command=ausgebe_geschlecht)
    variable.set(titel)    
    auswahl.pack()

def ausgebe_geschlecht(geschlecht):   
    print(geschlecht)

def main():    
    root = tk.Tk()
    erstelle_auswahl(root)
    root.mainloop()

if __name__ == '__main__':
    main()
Auch Du, bleib gesund!
Gruss Peter
Alter Mann
User
Beiträge: 8
Registriert: Donnerstag 14. September 2023, 18:33

Hallo Peter,

danke für deine Antwort. Ich bin im Moment etwas im Stress. Urlaubsvorbereitung und nach dem Urlaub eine OP und Reha. Da bleibt kaum Zeit für die PC-Arbeit.
Ein Menü löst mein Problem nicht Meine GUI hat 13 Eingabefelder, davon drei Combos. Es ist wesentlich einfacher mit der Tabtaste von Feld zu Feld zu springen.
Ein automatisches Aufklappen der Combos bei Fokuserhalt würde das lästige Mausklicken unnötig machen

Viele liebe Grüße

Manfred
Sirius3
User
Beiträge: 18226
Registriert: Sonntag 21. Oktober 2012, 17:20

Die Combos werden ja automatisch aufgeklappt, wenn man mit den Cursortasten durch die Auswahl navigiert. Von daher besteht Dein Problem gar nicht. Es wäre auch eine komische GUI, wenn sie von vornherein nicht ausschließlich per Tastatur bedienbar wäre.
Antworten