- 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命令。
语法
这是一个创建此控件的简单语法:
TkCheckButton.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自动为复选框创建类绑定,使其具有以下默认行为:
每当鼠标经过复选框时,复选框就会激活;每当鼠标离开复选框时,复选框就会停用。
当鼠标按钮1按下复选框时,它会被调用(它的选择状态切换,并且如果存在与按钮关联的命令,则该命令会被调用)。
当复选框具有输入焦点时,空格键会导致复选框被调用。
如果复选框的状态为disabled,则上述任何操作都不会发生:复选框完全无响应。
示例
require 'tk' root = TkRoot.new root.title = "Window" CkhButton1 = TkCheckButton.new(root) do text "Orange" indicatoron "true" background "red" relief "groove" height 2 width 2 onvalue 'Orange' place('height' => 25,'width' => 100, 'x' => 10, 'y'=> 10) command (select) end CkhButton2 = TkCheckButton.new(root) do text "Banana" background "red" relief "groove" height 2 width 2 onvalue 'Banana' place('height' => 25,'width' => 100, 'x' => 10, 'y'=> 40) end Tk.mainloop
这将产生以下结果: