Python 3 - Tkinter 单选按钮
-
简述
这个小部件实现了一个多选按钮,这是一种向用户提供许多可能的选择并让用户只选择其中一个的方法。为了实现此功能,每组单选按钮必须关联到相同的变量,并且每个按钮必须代表一个值。您可以使用 Tab 键从一个单选按钮切换到另一个单选按钮。 -
句法
这是创建此小部件的简单语法 -w = Radiobutton ( master, option, ... )
-
参数
-
master− 这代表父窗口。
-
options− 这是此小部件最常用选项的列表。这些选项可以用作以逗号分隔的键值对。
序号 选项和描述 1 activebackground鼠标悬停在单选按钮上时的背景颜色。2 activeforeground鼠标悬停在单选按钮上时的前景色。3 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指定标签周围装饰性边框的外观。默认是平的;对于其他值。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,则为组中的每个单选按钮提供不同的整数值选项。如果控制变量是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 = "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()
-
结果
执行上述代码时,会产生以下结果 -