- Ruby基础知识
 - Ruby - 主页
 - Ruby - 概述
 - Ruby - 环境设置
 - Ruby - 语法
 - Ruby - 类和对象
 - Ruby - 变量
 - Ruby - 运算符
 - Ruby - 评论
 - Ruby - IF...ELSE
 - Ruby - 循环
 - Ruby - 方法
 - Ruby - 块
 - Ruby - 模块
 - Ruby - 字符串
 - Ruby - 数组
 - Ruby - 哈希
 - Ruby - 日期和时间
 - Ruby - 范围
 - Ruby - 迭代器
 - Ruby - 文件 I/O
 - Ruby - 例外
 
Ruby/TK - 单选按钮小部件
描述
单选按钮允许您在多个互斥选项之一中进行选择,与复选按钮不同,它不仅限于两个选项。单选按钮总是在一组中一起使用,当选择数量相当小时,单选按钮非常有用。
单选按钮可以显示文本字符串、位图或图像以及称为指示器的菱形或圆形。如果显示文本,则它必须全部采用单一字体,但它可以在屏幕上占据多行(如果它包含换行符或由于wraplength选项而发生换行),并且可以选择使用下划线为其中一个字符加下划线选项。
复选按钮具有简单按钮的所有行为,包括以下内容: 根据状态选项,它可以以三种不同方式之一显示自身;可以使其看起来凸起、凹陷或平坦;可以使其闪烁;每当在复选按钮上单击鼠标按钮 1 时,它都会调用 Tcl 命令。
句法
这是创建此小部件的简单语法 -
TkRadiobutton.new(root) {
   .....Standard Options....
   .....Widget-specific Options....
}
标准选项
- 活动背景
 - 活跃前景
 - 锚
 - 背景
 - 位图
 - 边框宽度
 - 化合物
 - 光标
 - 禁用前景
 - 字体
 - 前景
 - 突出显示背景
 - 突出显示颜色
 - 突出显示厚度
 - 图像
 - 证明合法
 - 帕德克斯
 - 稻田
 - 宽慰
 - 聚焦
 - 文本
 - 文本变量
 - 强调
 - 包裹长度
 
这些选项已在前一章中进行了描述。
小部件特定选项
| 先生。 | 选项和说明 | 
|---|---|
| 1 | 命令=>字符串 Sp指定与按钮关联的 Ruby 命令。当在按钮窗口上释放鼠标按钮 1 时,通常会调用此命令。您可以在此处关联要在鼠标单击时执行的 Ruby 方法。可以使用命令选项调用的内置函数 - 
  | 
| 2 | 高度 => 整数 指定按钮所需的高度。  | 
| 3 | 指示符 => 布尔值 指定是否应绘制指示器。必须是正确的布尔值。如果为false,则浮雕选项将被忽略,并且如果选择了小部件并以其他方式升起,则小部件的浮雕始终会凹陷。  | 
| 4 | 偏移值 => 整数 指定每当取消选择此按钮时要存储在按钮关联变量中的值。默认为 0。  | 
| 5 | 值 => 整数 指定每当选择此按钮时要存储在按钮关联变量中的值。默认为 1。  | 
| 6 | 选择颜色 =>字符串 指定选择按钮时要使用的背景颜色。如果指示符为真,则颜色适用于指示符。如果Indicatoron为 false,则每当选择小部件时,都会使用此颜色作为整个小部件的背景,代替background或activebackground 。  | 
| 7 | 选择图像 =>图像 指定选择复选按钮时要显示的图像(代替图像选项)。除非指定了图像选项,否则该选项将被忽略。  | 
| 8 | 状态 => 字符串 指定按钮的三种状态之一:正常 、 活动 或 禁用。在正常状态下,按钮使用前景和背景选项显示。当指针位于按钮上方时通常使用活动状态。在活动状态下,按钮使用activeforeground和activebackground选项显示。禁用状态意味着按钮应该不敏感。  | 
| 9 | 变量 => 变量 指定要设置的全局变量的名称,以指示是否选择此按钮。默认为其父级中按钮的名称。  | 
| 10 | 宽度 => 整数 指定按钮所需的宽度。  | 
事件绑定
Ruby/Tk 自动为 Radiobutton 创建类绑定,为它们提供以下默认行为 -
当鼠标经过单选按钮时,单选按钮就会激活,而当鼠标离开单选按钮时,单选按钮就会停用。
当在单选按钮上按下鼠标按钮 1 时,将调用它(其选择状态切换,并调用与该按钮关联的命令(如果有))。
当单选按钮具有输入焦点时,空格键会导致调用复选按钮。
如果单选按钮的状态被禁用,则上述任何操作都不会发生:单选按钮完全没有响应。
例子
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
这将产生以下结果 -