Python Tkinter Radiobutton 此小部件实现了一个 multiple-choice 按钮,这是一种为用户提供许多可能的选项的方法,并允许用户只选择其中之一。
为了实现此功能,每组单选按钮必须与同一变量相关联,并且每个按钮必须符号化一个值。您可以使用 Tab 键从一个 radionbutton 切换到另一个 radionbutton。
语法
以下是创建此小部件的简单语法 -
w = Radiobutton ( master, option, ... )
参数
- master - 这表示父窗口。
- options − 这是此小部件最常用的选项列表。这些 options 可以用作用逗号分隔的键值对。
选项 | 描述 |
---|---|
activebackground |
鼠标悬停在单选按钮上的背景色。 |
activeforeground |
鼠标悬停在单选按钮上的前景色。 |
anchor |
如果 widget 所在的空间大于其需要的空间,则此选项指定 radiobutton 在该空间中的位置。默认值为 anchor=CENTER。 |
bg |
指示器和标签后面的正常背景色。 |
bitmap |
要在单选按钮上显示单色图像,请将此选项设置为位图。 |
borderwidth |
指标部分本身周围的边框大小。默认值为 2 像素。 |
command |
每次用户更改此单选按钮的状态时要调用的过程。 |
cursor |
如果将此选项设置为光标名称(箭头、点等),则鼠标光标在单选按钮上时将更改为该模式。 |
font |
用于文本的字体。 |
fg |
用于呈现文本的颜色。 |
height |
单选按钮上文本的行数 (不是像素)。默认值为 1。 |
highlightbackground |
当单选按钮没有焦点时,焦点的颜色会突出显示。 |
highlightcolor |
当单选按钮具有焦点时,焦点的颜色高亮显示。 |
image |
要显示此单选按钮的图形图像而不是文本,请将此选项设置为 image 对象。 |
justify |
如果文本包含多行,则此选项控制文本的两端对齐方式:CENTER(默认值)、LEFT 或 RIGHT。 |
padx |
在 radiobutton 和 text 的左侧和右侧留出多少空间。默认值为 1。 |
pady |
在 radiobutton 和 text 的上方和下方留出多少空间。默认值为 1。 |
relief |
指定标签周围装饰性边框的外观。默认值为 FLAT;以获取其他值。 |
selectcolor |
设置单选按钮时的颜色。默认值为 red。 |
selectimage |
如果在清除单选按钮时使用 image 选项来显示图形而不是文本,则可以将 selectimage 选项设置为在设置 radiobutton 时显示的其他图像。 |
state |
默认值为 state=NORMAL,但您可以设置 state=DISABLED 以使控件灰显并使其无响应。如果光标当前位于单选按钮上,则状态为 ACTIVE。 |
text |
单选按钮旁边显示的标签。使用换行符 (“\n”) 显示多行文本。 |
textvariable |
要将标签小部件中显示的文本从属到 StringVar 类的控制变量,请将此选项设置为该变量。 |
underline |
通过将此选项设置为 n,可以在文本的第 n 个字母下方显示下划线 (_),从 0 开始计数。默认值为 underline=-1,这意味着没有下划线。 |
value |
当用户打开单选按钮时,其 control 变量将设置为其 current value 选项。如果控制变量是 IntVar,则为组中的每个单选按钮提供不同的整数值选项。如果控制变量是 aStringVar,则为每个单选按钮提供不同的字符串值选项。 |
variable |
此单选按钮与组中的其他单选按钮共享的 control 变量。这可以是 IntVar 或 StringVar。 |
width |
标签的宽度(以字符为单位)(不是像素!如果未设置此选项,则标签的大小将适合其内容。 |
wraplength |
您可以通过将此选项设置为所需的数字来限制每行中的字符数。默认值 0 表示仅在换行符处换行。 |
方法
这些方法可用。
方法. | 描述 |
---|---|
deselect() |
清除 (关闭) 单选按钮。 |
flash() |
在 Active(活动颜色)和 Normal (正常)颜色之间闪烁 radiobutton(单选按钮)几次,但保持开始时的状态。 |
invoke() |
您可以调用此方法来获取与用户单击 radiobutton 以更改其状态时发生的相同操作。 |
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()
执行上述代码时,它会生成以下输出 -
