Tkinter Radiobutton教程

Tkinter Radiobutton教程

Radiobutton名称的由来是无线电的按钮,在收音机时代可以用无线电的按钮选择特定频道。选项按钮最大的特色是可以用鼠标单击方式选取此选项,同时一次只能有一个选项被选取,例如,在填写学历时,会看到一系列选项,例如,高中、大学、硕士、博士,此时只能勾选一个项目。在设计选项按钮时,最常见的方式是让选项按钮以文字方式存在,与标签一样我们也可以设计含图像的选项按钮。

程序设计时可以设计让选项按钮与函数(或称方法)绑在一起,当选择适当的选项按钮时,可以自动执行相关的函数或方法。另外,程序设计时可能会有多组选项按钮,此时可以设计一组选项按钮有一个相关的变量,用此变量绑定这组选项按钮。

这时可以使用Radiobutton( )方法建立上述系列选项按钮,语法格式如下。

Radiobutton(master, options, ...)

Radiobutton()方法的第一个参数是父对象,表示这个选项按钮将建立在哪一个父对象内。

下列是Radiobutton()方法内其他常用的options参数。

(1)activebackground:鼠标光标在选项按钮上时的背景颜色。

(2)activeforeground:鼠标光标在选项按钮上时的前景颜色。

(3)anchor:如果空间大于所需时,控制选项按钮的位置,默认是CENTER。

(4)bg:标签背景或indicator的背景颜色。

(5)bitmap:位图图像对象。

(6)borderwidth or bd:边界宽度默认是两个像素。

(7)command:当用户更改选项时,会自动执行此函数。

(8)cursor:当鼠标光标在选项按钮上时的光标形状。

(9)fg:文字前景颜色。

(10)font:字形。

(11)height:选项按钮上的文字有几行,默认是1行。

(12)highlightbackground:当选项按钮取得焦点时的背景颜色。

(13)highlightcolor:当选项按钮取得焦点时的颜色。

(14)image:图像对象,如果要建立含图像的选项按钮时,可以使用此参数。

(15)indicatoron:当此值为0时,可以建立盒子选项按钮。

(16)justify:当含多行文字时,最后一行文字的对齐方式。

(17)padx:默认是1,可设置选项按钮与文字的间隔。

(18)pady:默认是1,可设置选项按钮的上下间距。

(19)selectcolor:当选项按钮被选取时的颜色。

(20)selectimage:如果设置图像选项按钮时,可由此设置当选项按钮被选取时的不同图像。

(21)state:默认是state=NORMAL,若是设置DISABLE则以灰阶显示选项按钮表示暂时无法使用。

(22)text:选项按钮旁的文字。

(23)textvariable:以变量方式显示选项按钮文字。

(24)underline:可以设置第几个文字有下画线,从0开始算起,默认是-1,表示无下画线。

(25)value:选项按钮的值,可以区分所选取的选项按钮。

(26)variable:设置或取得目前选取的单选按钮,它的值类型通常是IntVar或StringVar。

(27)width:选项按钮的文字有几个字符宽,省略时会自行调整为实际宽度。

(28)wraplength:限制每行的文字数,默认是0,表示只有“\n”才会换行。

绑定整组选项按钮的方式如下。

var IntVar
rb1 = Radiobutton(root, ..., variable=var, value=x1, ...)
rb2 = Radiobutton(root, ..., variable=var, value=x2, ...)
...
rbn = Radiobutton(root, ..., variable=var, value=x3, ...)

未来若是想取得这组选项按钮所选的选项,可以使用get( )方法,这时会将所选选项的参数value的值传回,方法set( )可以设置最初默认的value选项。

Tkinter Radiobutton教程 示例1

这是一个简单的选项按钮的应用,程序刚执行时默认选项是“男生”,此时窗口上方显示尚未选择,然后可以选择“男生”或“女生”,选择完成后可以显示“你是男生”或“你是女生”。

from tkinter import *

def printSelection():
    num = var.get()
    if num == 1:
        label.config(text="You are a boy")
    else:
        label.config(text="You are a girl")

root = Tk()
root.title("apidemos.com")    # 设置窗口标题

var = IntVar()         # 选项按钮绑定的变量
var.set(1)             # 默认选项是男生
# var.set(0)           # 可以设置初始不默认任何选项 
label = Label(root,text="这是预设,尚未选择",bg="lightyellow",width=30)
label.pack()

rbman = Radiobutton(root,text="Boy",                  # 男生选项按钮
                    variable=var,value=1,              # value用来区分所选择的选项按钮 
                    command=printSelection)            # 女生选项按钮
rbman.pack()
rbwoman = Radiobutton(root,text="Girl",
                    variable=var,value=2,
                    command=printSelection)
rbwoman.pack()

root.mainloop()

Output:

Tkinter Radiobutton教程

上述第13行是设置var变量是IntVar( )对象,也是整型。第14行是设置默认选项是1,在此相当于默认是男生,第16和17行是设置标签信息。第19~22行是创建“男生”选项按钮,第23~26行是创建“女生”选项按钮。当有单选按钮新建时,会执行第3~8行的函数,这个函数会由var.get( )获得目前选项按钮的value值,然后由此值利用if判断所选的是男生或女生,最后使用config( )方法将男生或女生设置给标签对象label的text,所以可以看到所选的结果。

上述程序中是为了让读者了解get( )和set( )方法取得和设置的var值是参数value的值,在熟悉了选项按钮的操作后,这个字段可以用字符串处理,通常是设置text内容与value内容相同,这时在处理callback函数(此例中是printSelection)时,可以比较清晰易懂,整个程序也可以比较简洁。

Tkinter Radiobutton教程 示例2

使用字符串设置Radiobutton方法内的value参数值,重新设计ch7_1.py。读者会发现printSelection( )函数只用第4行就取代了原先的第4~8行。

from tkinter import *
def printSelection():
    label.config(text="You are "+var.get())

root = Tk()
root.title("apidemos.com")    # 设置窗口标题

var = StringVar()         # 选项按钮绑定的变量
var.set("Boy")             # 默认选项是男生
# var.set("Birth")             # 默认选项是空
# var.set(0)           # 可以设置初始不默认任何选项 
label = Label(root,text="This is a preset, not yet selected",bg="lightyellow",width=30)
label.pack()

rbman = Radiobutton(root,text="Boy-Tom",                  # 男生选项按钮
                    variable=var,value="Boy",              # value用来区分所选择的选项按钮 
                    command=printSelection)            # 女生选项按钮
rbman.pack()
rbwoman = Radiobutton(root,text="Girl-Lucy",
                    variable=var,value="Girl",
                    command=printSelection)
rbwoman.pack()

root.mainloop()

Output:

Tkinter Radiobutton教程

赞(2)
未经允许不得转载:极客笔记 » Tkinter Radiobutton教程

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
Tkinter入门
tkinter 简介tkinter 建立空白窗口tkinter 窗口属性的设置tkinter 窗口位置设置Tkinter Widget的command参数
Tkinter选项按钮与复选框
tkinter 选项按钮与复选框
Tkinter 文本框Entry
Tkinter 使用eval计算数学表达式
Tkinter 变量
Tkinter 变量类别的基本概念Tkinter 变量 get()与set()Tkinger 变量追踪trace()使用w模式Tkinter 变量追踪trace()使用r模式Tkinter trace()方法调用的callback方法参数Tkinter 变量实例:计算器
Tkinter 选项按钮Radiobutton
Tkinter Radiobutton教程Tkinter 将字典应用在Radiobutton上Tkinter 盒子选项按钮Tkinter 建立含图像的Radiobutton
Tkinter 复选框Checkbutton
Tkinter Checkbutton复选框Tkinter Checkbutton示例 - 简单编辑程序的应用
Tkinter 框架Frame
Tkinter Frame 框架的基本概念Tkinter 在Frame内创建WidgetTkinter Frame relief属性Tkinter Frame中创建复选框Tkinter Frame对relief属性的额外支持Tkinter 标签框架LabelFrameTkinter 在标签框架中添加复选框Tinker 顶层窗口ToplevelTkinter 使用Toplevel窗口仿真对话框
Tkinter Scale
Tkinter Scale的基本概念Tkinter 取得与设置Scale的尺度值Tkinter 使用Scale设置窗口背景颜色Tkinter colorchooser askcolor()方法Tkinter 容器与Scale综合应用
Tkinter Spinbox
Tkinter Spinbox控件基本概念Tkinter Spinbox get方法Tkinter 以序列存储Spinbox的数值数据Tkinter Spinbox使用非数值数据
Tkinter Message
Tkinter Message的基本概念Tkinter Message 使用字符串变量处理text参数Tkinter Messagebox教程
Tkinter 事件
Tkinter 事件绑定Tkinter 鼠标绑定的基本应用Tkinter 键盘绑定的基本应用Tkinter 键盘与鼠标事件绑定的陷阱Tkinter 取消绑定Tkinter 一个事件绑定多个事件处理程序Tkinter Protocols
Tkinter ListBox
Tkinter 建立列表框Tkinter ListBox insert()方法Tkinter Listbox的基本操作Tkinter ListBox选项数量size()Tkinter ListBox 选取特定索引项selection_set()Tkinter ListBox 删除特定索引项delete()Tkinter ListBox 传回指定的索引项get()Tkinter ListBox 传回所选取项目的索引curselection()Tkinter 检查ListBox指定索引项是否被选取Tkinter ListBox 虚拟绑定应用于单选Tkinter ListBox 虚拟绑定应用于多选Tkinter ListBox加入与删除项目Tkinter Listbox项目的排序Tkinter 拖曳Listbox中的项目Tkinter 滚动条的设计
Tkinter 下拉式列表
Tkinter 下拉式列表OptionMenuTkinter 使用元组建立OptionMenu列表项目Tkinter OptionMenu建立默认选项Tkinter OptionMenu 获得选项内容
Tkinter 组合框
Tkinter 组合框ComboboxTikinter Combobox设置默认选项Tkinter Combobox获得目前选项Tkinter 绑定Combobox
Tkinter 面板
Tkinter PanedWindow基本概念Tkinter PanedWindow 插入子控件Tkinter PanedWindow 建立LabelFrame当作子对象Tkinter PanedWindow weight参数Tkinter 在PanedWindow内插入不同控件
Tkinter Notebook
Tkinter Notebook基本概念Tkinter Notebook 绑定选项卡与子控件内容
Tkinter 进度条
Tkinter Progressbar的基本应用Tkinter Progressbar动画设计Tkinter Progressbar start/step/stop 方法Tkinter Progressbar indeterminate模式
Tkinter 菜单
Tkinter 菜单Menu设计的基本概念Tkinter Menu tearoff参数Tkinter Menu 菜单列表间加上分隔线Tkinter Menu 建立多个菜单的应用Tkinter Menu Alt快捷键Tkinter Menu Ctrl+快捷键Tkinter Menu 建立子菜单Tkinter Menu 建立弹出式菜单Tkinter Menu add_checkbuttonTkinter Menu 建立工具栏Toolbar
Tkinter 文字区域
Tkinter 文字区域Text的基本概念Tkinter Text 插入文字Tkinter Text加上滚动条Scrollbar设计Tkinter Text family参数Tkinter Text weight参数Tkinter Text size参数Tkinter Text 选取文字Tkinter 认识Text的索引Tkinter Text 建立书签Tkinter Text标签Tkinter Text Cut/Copy/Paste功能Tkinter Text 复原与重复Tkinter Text 查找文字Tkinter Text 拼写检查Tkinter Text 存储Text控件内容Tkinter Text 新建文档Tkinter 打开文档Tkinter 默认含滚动条的ScrolledText控件Tkinter Text 插入图像
Tkinter Treeview
Tkinter Treeview的基本概念Tkinter 格式化Treeview栏位内容Tkinter Treeview 建立不同颜色的行内容Tkinter 建立层级式的TreeviewTkinter Treeview 插入图像Tkinter Treeview Selection选项发生与事件触发Tkinter Treeview 删除项目Tkinter Treeview 插入项目Tkinter Treeview 双击某个项目Tkinter Treeview绑定滚动条Tkinter Treeview 排序
Tkinter Canvas
Tkinter Canvas 绘制线条Tkinter Canvas 绘制矩形Tkinter Canvas 绘制圆弧Tkinter Canvas 绘制圆或椭圆Tkinter Canvas 绘制多边形Tkinter Canvas 输出文字Tkinter Canvas 更改画布背景颜色Tkinter Canvas 插入图像Tkinter Canvas 鼠标拖曳绘制线条Tkinter Canvas 基本动画Tkinter Canvas 多个球移动的设计Tkinter Canvas 将随机数应用于多个球体的移动Tkinter Canvas 消息绑定Tkinter Canvas 设计球往下移动Tkinter Canvas 设计让球上下反弹Tkinter Canvas 设计让球在画布四面反弹Tkinter Canvas 建立球拍Tkinter Canvas 设计球拍移动Tkinter Canvas 球拍与球碰撞的处理Tkinter Canvas 实现反弹球设计游戏