单选按钮是一种可在多个预先定义的选项中选择出一项的 Tkinter 控件. 单选按钮可显示文字或图片. 显示文字时只能使用预设字体. 该控件可以绑定一个 Python 函数或方法, 当单选按钮被选择时, 该函数或方法将被调用. 单选按钮 (Radio Button) 这个名字来源于收音机 (Radio) 上的调频按钮, 这些按钮用来选择特定波段或预设电台. 如果一个按钮被按下, 其他同类的按钮就会弹起, 即同时只有一个按钮可被按下. 一组单选按钮控件和同一个变量关联. 点击其中一个单选按钮将把这个变量设为某个预定义的值.
上面代码输出如下窗口:
很多情况下, 单选按钮项目将不止是两项. 在选项很多时, 逐个生成单选项的方法就显得太笨了. 解决办法如下例中所示, 我们预先定义了一个 list, 其元素中包含了按钮文本及其对应的选项值. 这样我们就可以用一个循环来建立这组单选按钮了.
from Tkinter import *root = Tk()v = IntVar()v.set(1) # initializing the choice, i.e. Pythonlanguages = [ ("Python",1), ("Perl",2), ("java",3), ("C++",4), ("C",5)]def ShowChoice(): print v.get()Label(root, text="""Choose your favourite programming language:""", justify = LEFT, padx = 20).pack()for txt, val in languages: Radiobutton(root, text=txt, padx = 20, variable=v, command=ShowChoice, value=val).pack(anchor=W)mainloop()上例运行后将显示如下窗口:
除了使用默认的空心圆形作为选项条目, 我们也可以用一个文本框来展示选项. 将 indicatoron
选项设置为 0 即可达到该目的: 这表示单选按钮不会有额外的单选指示器. 我们将上例中 Radiobutton 的创建代码修改如下:
在上面的代码中, 我们使用了 indicatoron
参数 和 width
参数. 上例运行显示如下:
已获得原作者授权. 原文地址
新闻热点
疑难解答