Seite 1 von 1

Radiobuttons im tkinter menu vorauswählen

Verfasst: Sonntag 16. Juni 2019, 14:16
von EinSteini
Hallo!
Ich mache gerade ein Spiel, in dem der User durch Auswahl von Radiobuttons im Menu von tkinter das Spielfeld-Design festlegen kann. Wenn ich das Programm starte, ist aber keiner von den Radiobuttons ausgewählt. Kann ich irgendwie einen Radiobutton vorauswählen?

Code: Alles auswählen

menu = Menu(hf)
designmenu = Menu(menu)
menu.add_cascade(label="Design", menu=designmenu)
designmenu.add_radiobutton(label="Normal", command=normaldesign)
designmenu.add_radiobutton(label="Summer", command=summerdesign) 

Re: Radiobuttons im tkinter menu vorauswählen

Verfasst: Sonntag 16. Juni 2019, 14:57
von __blackjack__
@EinSteini: Du musst bei beiden `value` setzen und die gleiche `variable`, damit Tk weiss, das die beiden zusammengehören, und der Wert der `variable` legt dann auch fest welcher Radiobutton (vor)ausgewählt ist.

Re: Radiobuttons im tkinter menu vorauswählen

Verfasst: Sonntag 16. Juni 2019, 15:02
von EinSteini
Was soll das für eine Variable sein? Boolean, und dann der voraktivierte auf True und die anderen auf False?

Re: Radiobuttons im tkinter menu vorauswählen

Verfasst: Sonntag 16. Juni 2019, 15:34
von Sirius3
Eine Tk-Variable, z.B: StringVar:

Code: Alles auswählen

import tkinter as tk

def main():
    hf = tk.Tk()
    menu = tk.Menu(hf)
    selected_design = tk.StringVar(hf, "Summer")
    designmenu = tk.Menu(menu)
    menu.add_cascade(label="Design", menu=designmenu)
    designmenu.add_radiobutton(label="Normal", variable=selected_design)
    designmenu.add_radiobutton(label="Summer", variable=selected_design)
    hf['menu'] = menu
    hf.mainloop()

if __name__ == '__main__':
    main()