- 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
这将产生以下结果 -