Wie kann man abfragen, welcher Radiobutton gedrückt wurde Tkinter?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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.


Hanrui1234 
Beitragsersteller
 07.03.2022, 17:53

Und wie genau geht das dann

0