9.3 单选

单选组件的例子如下:
import tkinter as tk
def on_radio_selected():
    selected_value = language.get()
    print(f"选中了选项{selected_value}")
def on_radio_selected2():
    selected_value = frame.get()
    print(f"选中了选项{selected_value}")
root = tk.Tk()
root.geometry("200x200")
language = tk.StringVar()
frame=tk.StringVar()
#默认选Python
language.set("Python")
frame.set("Vue")
#创建三个单选按钮,并绑定事件
python_radio = tk.Radiobutton(root, text="Python", variable=language, value="Python",command=on_radio_selected)
java_radio = tk.Radiobutton(root, text="Java", variable=language, value="Java",command=on_radio_selected)
ruby_radio = tk.Radiobutton(root, text="Ruby", variable=language, value="Ruby",command=on_radio_selected)
Vue_radio = tk.Radiobutton(root, text="Vue.js", variable=frame, value="Vue",command=on_radio_selected2)
SpringBoot_radio = tk.Radiobutton(root, text="SpringBoot", variable=frame, value="SpringBoot",command=on_radio_selected2)
python_radio.pack()
java_radio.pack()
ruby_radio.pack()
Vue_radio.pack()
SpringBoot_radio.pack()
root.mainloop()
注意,这里的language是自定义的,单选按钮的variable值相同,就成一组,每组只能选其中一个。如果有两组可以选:
这里19-21的单选是一组,它们都使用了相同的variable值language,23和24行的单选是另外一组,它们使用了variable值是frame。
language和frame在第13和14行定义,StringVar表明这是一个字符串值,也可以指定是整数(tk.IntVar())
language.get()可以获得language这一组最终选择的值。