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

单选按钮获得焦点时的焦点高亮颜色。

14

image

要为此单选按钮显示图形图像而不是文本,请将此选项设置为图像对象。

15

justify

如果文本包含多行,此选项控制文本的对齐方式:CENTER(默认值)、LEFT 或 RIGHT。

16

padx

在单选按钮和文本的左侧和右侧留出多少空间。默认为 1。

17

pady

在单选按钮和文本的上方和下方留出多少空间。默认为 1。

18

relief

指定标签周围装饰性边框的外观。默认为 FLAT;对于其他值。

19

selectcolor

设置单选按钮时的颜色。默认为红色。

20

selectimage

如果使用 image 选项在单选按钮清除时显示图形而不是文本,则可以将 selectimage 选项设置为不同的图像,该图像将在单选按钮设置时显示。

21

state

默认为 state=NORMAL,但可以设置 state=DISABLED 以使控件变灰并使其无响应。如果光标当前位于单选按钮上,则状态为 ACTIVE。

22

text

显示在单选按钮旁边的标签。使用换行符 ("\n") 显示多行文本。

23

textvariable

要将标签部件中显示的文本与 StringVar 类的控制变量关联,请将此选项设置为该变量。

24

下划线

通过将此选项设置为 n,可以在文本的第 n 个字母(从 0 开始计数)下显示下划线 (_) 。默认值为 underline=-1,表示没有下划线。

25

当用户打开单选按钮时,其控制变量将设置为其当前值选项。如果控制变量是 IntVar,请为组中的每个单选按钮赋予不同的整数值选项。如果控制变量是 StringVar,请为每个单选按钮赋予不同的字符串值选项。

26

变量

此单选按钮与组中其他单选按钮共享的控制变量。这可以是 IntVar 或 StringVar。

27

宽度

标签的宽度(以字符为单位,而不是像素!)。如果未设置此选项,则标签的大小将调整为适合其内容。

28

换行长度

可以通过将此选项设置为所需数字来限制每行中的字符数。默认值 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()

执行上述代码后,将产生以下输出

tkinter radiobutton
python_gui_programming.htm
广告