Tkinter 单选按钮
这个小部件实现了一种多选按钮,允许用户从多个可能的选择中选择一个。
为了实现这个功能,每个单选按钮组必须关联到同一个变量,并且每个按钮都必须代表一个单独的值。你可以使用 Tab 键在不同的单选按钮之间切换。
语法
以下是创建该小部件的简单语法:
w = Radiobutton ( master, option, ... )
参数
- master - 这表示父窗口。
-
options - 这是此小部件的最常用选项列表。这些选项可以用逗号分隔的键值对的形式使用。
序号 | 选项和描述 |
---|---|
1 | activebackground 鼠标悬停在单选按钮上时的背景颜色。 |
2 | activeforeground 鼠标悬停在单选按钮上时的前景颜色。 |
3 | anchor 如果部件占据了比所需的更大的空间,此选项指定单选按钮在该空间中的位置。默认值为anchor=CENTER。 |
4 | bg 指示器和标签后面的正常背景颜色。 |
5 | bitmap 要在单选按钮上显示单色图像,请将此选项设置为位图。 |
6 | borderwidth 边框的大小,围绕着指示器的部分。默认为2个像素。 |
7 | command 每当用户更改此单选按钮的状态时调用的过程。 |
8 | cursor 如果您将此选项设置为光标名称(箭头,点等),当光标位于单选按钮上方时,鼠标光标将更改为该模式。 |
9 | font 用于文本的字体。 |
10 | fg 用于渲染文本的颜色。 |
11 | height 单选按钮上文本的行数(不是像素数)。默认为1。 |
12 | highlightbackground 单选按钮没有焦点时的焦点高亮色。 |
13 | highlightcolor 当radiobutton有焦点时,焦点高亮的颜色。 |
14 | image 如果要为该radiobutton显示图形图像而不是文本,请将该选项设置为图像对象。 |
15 | justify 如果文本包含多行,此选项控制文本的对齐方式:CENTER(默认值)、LEFT或RIGHT。 |
16 | padx radiobutton和文本左右留出的空白空间。默认值为1。 |
17 | pady radiobutton和文本上下留出的空白空间。默认值为1。 |
18 | relief 指定标签周围装饰性边框的外观。默认值为FLAT;有其他值。 |
19 | selectcolor 当单选按钮被选中时的颜色。默认为红色。 |
20 | selectimage 如果您使用图像选项在单选按钮被清除时显示图形而不是文本,您可以将selectimage选项设置为不同的图像,当单选按钮被选中时将显示该图像。 |
21 | state 默认状态是state=NORMAL,但您可以将state=DISABLED来使控件变灰并且无响应。如果光标当前位于单选按钮上方,则状态为ACTIVE。 |
22 | text 单选按钮旁边显示的标签。使用换行符(”\n”)显示多行文本。 |
23 | textvariable 为了将标签小部件中显示的文本与StringVar类的控制变量绑定,将此选项设置为该变量。 |
24 | underline 可以通过将此选项设置为n,来在文本的第n个字母下方显示下划线(_),从0开始计数。默认为underline=-1,表示不使用下划线。 |
25 | value 当用户打开单选按钮时,其控制变量被设置为其当前值选项。如果控制变量是IntVar,则给组中的每个单选按钮分配一个不同的整数值选项。如果控制变量是aStringVar,则给每个单选按钮分配一个不同的字符串值选项。 |
26 | variable 这个单选按钮与组中的其他单选按钮共享的控制变量。可以是IntVar或StringVar。 |
27 | width 标签的字符宽度(不是像素!)。如果未设置此选项,标签的大小将自适应其内容。 |
28 | wraplength 您可以通过将此选项设置为所需的字符数量来限制每行的字符数。默认值为0,表示只在换行符处断行。 |
方法
这些方法是可用的。
序号 | 方法与描述 |
---|---|
1 | deselect() 清除(关闭)单选按钮。 |
2 | flash() 在活动和正常颜色之间闪烁单选按钮几次,但保持原始状态。 |
3 | invoke() 您可以调用此方法来执行与用户点击单选按钮以更改其状态时相同的操作。 |
4 | select() 设置(打开)单选按钮。 |
示例
尝试以下示例:
from tkinter import *
def sel():
selection = "You selected the option " + str(var.get())
label.config(text = selection)
root = Tk()
var = IntVar()
R1 = Radiobutton(root, text="Option 1", variable=var, value=1, command=sel)
R1.pack( anchor = W )
R2 = Radiobutton(root, text="Option 2", variable=var, value=2, command=sel)
R2.pack( anchor = W )
R3 = Radiobutton(root, text="Option 3", variable=var, value=3, command=sel)
R3.pack( anchor = W)
label = Label(root)
label.pack()
root.mainloop()
当执行上述代码时,它会产生以下输出 –