- 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选项导致换行),并且可以使用underline选项可选地对其中一个字符进行下划线。
复选框具有简单按钮的所有行为,包括以下内容:根据 state 选项,它可以以三种不同的方式显示自身;可以使其显示为凸起、凹陷或平坦;可以使其闪烁;并且每当在复选框上单击鼠标按钮 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 => 字符串 指定要与按钮关联的 Ruby 命令。此命令通常在鼠标按钮 1 在按钮窗口上释放时调用。在这里,您可以关联一个 Ruby 方法,以便在鼠标点击时执行。可以使用 command 选项调用的内置函数:
|
2 | height => 整数 指定按钮所需的高度。 |
3 | indicatoron => 布尔值 指定是否应该绘制指示器。必须是正确的布尔值。如果为false,则忽略relief选项,并且如果部件已选中,则部件的浮雕始终为凹陷,否则为凸起。 |
4 | offvalue => 整数 指定在取消选择此按钮时存储在按钮关联变量中的值。默认为 0。 |
5 | onvalue => 整数 指定在选择此按钮时存储在按钮关联变量中的值。默认为 1。 |
6 | selectcolor => 字符串 指定在选择按钮时使用的背景颜色。如果indicatoron为 true,则颜色应用于指示器。如果indicatoron为 false,则每当部件被选中时,此颜色将用作整个部件的背景,代替background或activebackground。 |
7 | selectimage => 图像 指定在选中复选框时显示的图像(代替 image 选项)。除非已指定 image 选项,否则会忽略此选项。 |
8 | state => 字符串 为按钮指定三种状态之一:normal、active 或 disabled。在正常状态下,按钮使用foreground和background选项显示。活动状态通常在指针位于按钮上时使用。在活动状态下,按钮使用activeforeground和activebackground选项显示。禁用状态表示按钮应该不敏感。 |
9 | variable => 变量 指定全局变量的名称,以设置为指示此按钮是否已选中。默认为其父级中按钮的名称。 |
10 | width => 整数 指定按钮所需宽度。 |
事件绑定
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
这将产生以下结果: