赞
踩
第8章 单选按钮控件(Radiobutton)
Radiobutton,可以叫做单选按钮,无线按钮或者勾选按钮。单选按钮的功能是是实现多选一,从多个待选项中选择一个。 单选按钮的提示信息可以是文字或者图像,单选按钮的外观也有多种样式。为了能够更加灵活的处理单选按钮,还可以绑定一个回调函数,用来处理复杂的情况。当单选按钮被点击的时候,系统会自动调用这个函数。
单选按钮的文字只能使用一种字体。如果提示的文本信息太长,可以折行显示。还可以对其中的一个字符设置下划线,用来表示快捷键。默认情况下,可以使用Tab键移动焦点到单选按钮控件上。
每一组单选按钮只能和同一个变量关联。每个选项代表这个变量可能取值中的一个。这些取值不能重复,重复的单选按钮也没有任何的意义。
8.1 单选按钮控件属性
选项 | 描述 |
---|---|
activebackground | 当鼠标左键按下时,单选按钮的背景色 |
activeforeground | 当鼠标左键按下时,单选按钮的前景色(文字颜色) |
anchor | 控制文本或者图片如何摆放。可以使用的数值有: N, NE, E, SE, S, SW, W, NW, CENTER. 默认值是CENTER |
backgroud bg |
单选按钮的背景色 |
bitmap | 背景图片 |
borderwidth bd |
边框的大小,默认为 2 个像素 |
command | 回调函数,当单选按钮被点击时,执行该函数 |
compound | 设置如何同时显示文字和图片。默认的模式是如果提供了图片,会只显示图片。但是,如果将选项设为: CENTER:在图片中央叠加显示文字 BOTTOM:在图片下方显示文字 LEFT:在图片左边显示文字 RIGHT:在图片右边显示文字 TOP:在图片上方显示文字 NONE:不显示文字 |
cursor | 光标的形状设定,如arrow, circle, cross, plus 等 |
disabledforeground | 禁用单选按钮时的前景色(文本颜色) |
font | 文本字体 |
foreground fg |
单选按钮的前景色(文本颜色) |
height | 设置高度。单位是行 |
highlightcolor | 获得输入焦点时的高亮颜色(无效果) |
highlightbackground | 失去输入焦点时的背景颜色(无效果) |
highlightthickness | 获得输入焦点时的高亮边框宽度 |
indicatoron | 控制indicator的状态。默认是True。如果是False,则不会显示圆形按钮,会用不同按钮的形式来显示整组的按钮,选中的按钮和其他未选中的靠按钮效果来区分。一般情况下,选中的按钮是SUNKEN效果的,而未选中的是RAISED效果的。 |
image | 背景图片。 |
justify | 折行显示的时候,设置不同行之间的对齐方式,可选项包括LEFT, RIGHT, CENTER |
offrelief | 按钮状态为off时的显示效果。默认值是RAISED |
overrelief | 鼠标经过单选按钮时候的显示效果。 |
padx | 按钮在x轴方向上的内边距(padding),默认为 1 像素。 |
pady | 按钮在y轴方向上的内边距(padding),默认为 1 像素。 |
relief | 显示效果,设置控件的3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。 |
selectcolor | 圆形按钮的背景颜色 |
selectimage | 单选按钮被选中后显示的图片 |
state | 单选按钮状态,默认为 state=NORMAL |
text | 提示文本,可使用 “\n” 来对文本进行换行。 |
takefocus | 表示可以使用Tab键移动焦点到该单选按钮。默认是可以。 |
textvariable | 关联的tkinter变量,一般是StringVar类型。如果该变量改变,则这个单选按钮的文本会更新。 |
underline | 定义在那个字符下面显示下划线。默认按钮上的文本都不带下划线。 |
variable | 变量,variable 的值为 1 或 0,代表着选中或不选中 |
width | 默认宽度是单选按钮的文本或图像决定的,可以设置指定字符数。 |
wraplength | 决定单选按钮的文字是否可以折行显示 |
8.1.1 activebackground和activeforeground | |
activebackground是鼠标左键按下时,单选按钮的背景颜色,鼠标键释放后,恢复初始颜色。activeforeground是鼠标左键按下时,单选按钮的文本颜色,鼠标键释放后,恢复初始颜色。 |
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1 = tk.Radiobutton(root,text='选择1',activebackground='red',activeforeground='yellow')
b1.pack()
root.mainloop()
结果:
8.1.2 anchor
设置如何显示文本或者图像提示信息。可选项有:N, NE, E, SE, S, SW, W, NW, CENTER。如果是使用字符串直接赋值,需要小写字母。比如anchor=’ne’。
anchor属性如果要起作用,在使用pack布局管理器,需要设置expand=True以及fill=X、fill=Y或者fill=BOTH。否则anchor很可能没有效果。
如果使用grid布局管理器,需要设置rowconfigure和columnconfigure,同时设置sticky=’nsew’。详细的见代码说明。
pack布局管理代码:
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1 = tk.Radiobutton(root,text='选择1',anchor=tk.S+tk.W)
b1.pack(fill=tk.BOTH,expand=True)
root.mainloop()
结果:
说明:fill=tk.BOTH和expand=True的作用是让子控件可以充满整个窗口。
grid布局管理代码:
import tkinter as tk
root=tk.Tk()
roo
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。