Wie kann man abfragen, welcher Radiobutton gedrückt wurde Tkinter?
2 Antworten
Du kannst einen Radiobutton an eine Variable binden.
gender = StringVar(value="male")
radio_button_1 = Radiobutton(root, text="male", value="male", variable=gender)
radio_button_2 = Radiobutton(root, text="female", value="female", variable=gender)
radio_button_3 = Radiobutton(root, text="diverse", value="diverse", variable=gender)
Und später, wenn durch ein Ereignis wie beispielsweise einem Buttonklick signalisiert wird, dass der Nutzer seine Eingaben vorgenommen hat, den Wert auslesen.
Button:
submit_button = Button(root, text="Submit", command=evaluate_data)
Der Ereignishandler:
def evaluate_data():
selected_gender = gender.get()
if selected_gender == "male":
print("is male")
elif selected_gender == "female":
print("is female")
elif selected_gender == "diverse":
print("is diverse")
else:
print("nothing selected")
Der else-Zweig wäre übrigens nur für den Fall notwendig, falls am Anfang keiner der Radiobuttons vorselektiert sein soll. Aktuell wäre dies bei meinem Beispiel der Fall, denn das StringVar-Objekt hat den Wert von einem der Radiobuttons (Beachte hierbei: Ein leerer String für value würde alle Buttons selektieren, ein String ohne Assoziation zu einem Button - wie z.B. "xyz" würde keinen Button selektieren).
Wenn du hingegen direkt auf die Auswahl eines Radiobuttons reagieren möchtest, statte ihn mit einem Command aus.
Beispiel:
def radio_button_1_clicked():
print("Radio button 1 was clicked")
radio_button_1 = Radiobutton(root, text="Radio Button 1", value=IntVar(), command=radio_button_1_clicked)
, command=myfunc
myfunc ist die Funktion die du aufrufen willst wenn der Button geklickt wird.
Und wie genau geht das dann