9.3 单选
单选组件的例子如下:
import tkinter as tkdef 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()#默认选Pythonlanguage.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这一组最终选择的值。