已获原做者受权. 原系列地址: Python Tkinter
单选按钮是一种可在多个预先定义的选项中选择出一项的 Tkinter 控件. 单选按钮可显示文字或图片. 显示文字时只能使用预设字体. 该控件能够绑定一个 Python 函数或方法, 当单选按钮被选择时, 该函数或方法将被调用.
单选按钮 (Radio Button) 这个名字来源于收音机 (Radio) 上的调频按钮, 这些按钮用来选择特定波段或预设电台. 若是一个按钮被按下, 其余同类的按钮就会弹起, 即同时只有一个按钮可被按下.
一组单选按钮控件和同一个变量关联. 点击其中一个单选按钮将把这个变量设为某个预约义的值.php
from Tkinter import * root = Tk() v = IntVar() Label(root, text="""Choose a programming language:""", justify = LEFT, padx = 20).pack() Radiobutton(root, text="Python", padx = 20, variable=v, value=1).pack(anchor=W) Radiobutton(root, text="Perl", padx = 20, variable=v, value=2).pack(anchor=W) mainloop()
上面代码输出以下窗口:python
不少状况下, 单选按钮项目将不止是两项. 在选项不少时, 逐个生成单选项的方法就显得太笨了. 解决办法以下例中所示, 咱们预先定义了一个 list, 其元素中包含了按钮文本及其对应的选项值. 这样咱们就能够用一个循环来创建这组单选按钮了.segmentfault
from Tkinter import * root = Tk() v = IntVar() v.set(1) # initializing the choice, i.e. Python languages = [ ("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 的建立代码修改以下:oop
Radiobutton(root, text=txt, indicatoron = 0, width = 20, padx = 20, variable=v, command=ShowChoice, value=val).pack(anchor=W)
在上面的代码中, 咱们使用了 indicatoron
参数 和 width
参数. 上例运行显示以下:布局
全系列:
[译][Tkinter 教程01] 入门: Label 控件
[译][Tkinter 教程02] Message 控件
[译][Tkinter 教程03] Button 控件
[译][Tkinter 教程04] Variable 类
[译][Tinkter 教程05] Radiobutton 控件
[译][Tkinter 教程06] Checkbox 控件
[译][Tkinter 教程07] Entry 控件
[译][Tkinter 教程08] Canvas 图形绘制
[译][Tkinter 教程09] Scale 控件
[译][Tkinter 教程10] Text 控件
[译][Tkinter 教程11] 对话框和消息框
[译][Tkinter 教程12] 布局管理 (Pack Place Grid)
[译][Tkinter 教程13] Mastermind 游戏
[译][Tkinter 教程14] menu 菜单
[译][Tkinter 教程15] event 事件绑定
译者水平有限, 若有疏漏, 欢迎指正.
已得到原做者受权. 原文地址: Radiobuttons