Radiobutton 控件用于创建一个单选按钮。为了让一群单选按钮可以执行相同的功能,必须设置这群单选按钮的 variable 属性为相同值,value 属性值就是各单选按钮的数值。
1、Radiobutton 控件的属性 #
属性 | 说明 |
---|---|
command | 当用户选中此单选按钮时,所调用的函数。 |
variable | 当用户单选中单选按钮时,要更新的变量。 |
width | 当用户选中此单选按钮时,要存储在变量内的值。 |
2、Radiobutton 控件的方法 #
方法 | 说明 |
---|---|
flash() | 将前景与背景颜色互换,以产生闪烁的效果。 |
invoke() | 执行command属性所定义的函数。 |
select() | 选择此单选按钮,将variable变量的值设置为value属性值。 |
下面的示例将创建 5 个运动项目的单选按钮及一个文字标签,将用户的选择显示在文字标签上。
from tkinter import * # 创建主窗口 win = Tk() # 运动项目列表 sports = ["棒球", "篮球", "足球", "网球", "排球"] # 将用户的选择显示在Label控件上 def showSelection(): choice = "你的选择是: " + sports[var.get()] label.config(text=choice) # 读取用户的选择值,是一个整数 var = IntVar() # 创建单选按钮,靠左边对齐 Radiobutton(win, text=sports[0], variable=var, value=0, command=showSelection).pack(anchor=W) Radiobutton(win, text=sports[1], variable=var, value=1, command=showSelection).pack(anchor=W) Radiobutton(win, text=sports[2], variable=var, value=2, command=showSelection).pack(anchor=W) Radiobutton(win, text=sports[3], variable=var, value=3, command=showSelection).pack(anchor=W) Radiobutton(win, text=sports[4], variable=var, value=4, command=showSelection).pack(anchor=W) # 创建文字标签,用于显示用户的选择 label = Label(win) label.pack() # 开始程序循环 win.mainloop()
结果如图所示:
下面的示例是创建命令型的单选按钮。
# 创建命令型的单选按钮 from tkinter import * # 创建主窗口 win = Tk() # 运动项目列表 sports = ["棒球", "篮球", "足球", "网球", "排球"] # 将用户的选择显示在Label控件上 def showSelection(): choice = "你的选择是: " + sports[var.get()] label.config(text=choice) # 读取用户的选择值,是一个整数 var = IntVar() # 创建单选按钮 radio1 = Radiobutton(win, text=sports[0], variable=var, value=0, command=showSelection) radio2 = Radiobutton(win, text=sports[1], variable=var, value=1, command=showSelection) radio3 = Radiobutton(win, text=sports[2], variable=var, value=2, command=showSelection) radio4 = Radiobutton(win, text=sports[3], variable=var, value=3, command=showSelection) radio5 = Radiobutton(win, text=sports[4], variable=var, value=4, command=showSelection) # 将单选按钮的外型,设置成命令型按钮 radio1.config(indicatoron=0) radio2.config(indicatoron=0) radio3.config(indicatoron=0) radio4.config(indicatoron=0) radio5.config(indicatoron=0) # 将单选按钮靠左边对齐 radio1.pack(anchor=W) radio2.pack(anchor=W) radio3.pack(anchor=W) radio4.pack(anchor=W) radio5.pack(anchor=W) # 创建文字标签,用于显示用户的选择 label = Label(win) label.pack() # 开始程序循环 win.mainloop()
结果如图所示: