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