Ruby/TK - Radiobutton 单选按钮小部件

说明

单选按钮 允许您在多个相互排斥的选项中进行选择,与复选按钮不同,它不仅限于两个选项。 单选按钮总是在一个集合中一起使用,并且在选择的数量相当少时很好。

单选按钮可以显示文本字符串、位图或图像以及称为指示符的菱形或圆形。 如果显示文本,则它必须全部采用单一字体,但它可以在屏幕上占据多行(如果它包含换行符或由于 wraplength 选项而发生换行)和一个字符 可以选择使用 underline 选项加下划线。

复选按钮具有简单按钮的所有行为,包括以下内容: 根据状态选项,它可以以三种不同方式中的任何一种显示自己; 它可以看起来凸起、凹陷或平坦; 可以让它闪烁; 并且每当鼠标按钮 1 在复选按钮上单击时,它都会调用 Tcl 命令。

语法

这是创建此小部件的简单语法 −

TkRadiobutton.new(root) {
   .....Standard Options....
   .....Widget-specific Options....
}

标准选项

  • activebackground
  • activeforeground
  • anchor
  • background
  • bitmap
  • borderwidth
  • compound
  • cursor
  • disabledforeground
  • font
  • foreground
  • highlightbackground
  • highlightcolor
  • highlightthickness
  • image
  • justify
  • padx
  • pady
  • relief
  • takefocus
  • text
  • textvariable
  • underline
  • wraplength

这些选项已在前一章中描述。


小部件特定选项

序号 选项 & 描述
1

command => String

Sp 指定与按钮关联的 Ruby 命令。 当鼠标按钮 1 在按钮窗口上释放时,通常会调用此命令。 在这里,您可以关联要在鼠标单击时执行的 Ruby 方法。 可以使用命令选项调用的内置函数 −

  • deselect − 取消选中复选按钮并将关联变量设置为其"off"值。

  • flash − 闪烁复选按钮。 这是通过多次重新显示复选按钮来完成的,在活动颜色和正常颜色之间交替。

  • select − 选择复选按钮并将关联变量设置为其"on"值。

  • toggle − 切换按钮的选择状态,重新显示它并修改其关联变量以反映新状态。

2

height => Integer

指定按钮的所需高度。

3

indicatoron => Boolean

指定是否应绘制指标。 必须是正确的布尔值。 如果 false,则忽略 relief 选项,如果选择了小部件,则小部件的浮雕总是凹陷,否则凸起。

4

offvalue => Integer

指定在取消选择此按钮时存储在按钮的关联变量中的值。 默认为 0。

5

onvalue => Integer

指定无论何时选择此按钮时要存储在按钮的关联变量中的值。 默认为 1。

6

selectcolor => String

指定选择按钮时要使用的背景颜色。 如果 indicatoron 为真,则颜色适用于指标。 如果 indodatoron 是错误的,则将此颜色用作整个小部件的背景 .

7

selectimage => Image

指定选中复选按钮时要显示的图像(代替图像选项)。 除非指定了 image 选项,否则此选项将被忽略。

8

state => String

指定按钮的三种状态之一:正常、活动或禁用(normal, active, or disabled)。 在正常状态下,按钮使用 foregroundbackground 选项显示。 活动状态通常在指针位于按钮上方时使用。 在活动状态下,按钮使用 activeforegroundactivebackground 选项显示。 禁用状态意味着按钮应该是不敏感的。

9

variable => Variable

指定要设置的全局变量的名称,以指示是否选择了此按钮。 默认为其父级中按钮的名称。

10

width => Integer

指定按钮的所需宽度。


事件绑定

Ruby/Tk 自动为 Radiobutton 创建类绑定,为它们提供以下默认行为 −

  • 单选按钮在鼠标经过时激活,在鼠标离开单选按钮时停用。

  • 当鼠标按钮 1 在单选按钮上按下时,它会被调用(它的选择状态切换并且与按钮关联的命令被调用,如果有的话)。

  • 当单选按钮具有输入焦点时,空格键会导致检查按钮被调用。

如果单选按钮的状态是disabled,那么上述动作都不会发生:单选按钮完全没有响应。

示例

require "tk"

def print_v
   print $v, "\n"
end

$v = TkVariable.new

TkRadioButton.new { 
   text 'top'
   variable $v
   value 'top'
   anchor 'w'
   pack('side' => 'top', 'fill' => 'x')
}
TkRadioButton.new {
   text 'middle'
   variable $v
   value 'middle'
   anchor 'w'
   pack('side' => 'top', 'fill' => 'x')
}
TkRadioButton.new {
   text 'bottom'
   variable $v
   value 'bottom'
   anchor 'w'
   pack('side' => 'top', 'fill' => 'x')
}

TkButton.new {
   text 'Quit'
   command 'exit'
   pack
}

Tk.root.bind "1", proc{print_v}

Tk.mainloop

这将产生以下结果 −

Ruby/Tk Radiobutton

❮ Ruby Tk 指南