- 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 - 缩放部件
描述
缩放部件显示一个矩形槽和一个小的滑块。槽对应于一个实数值范围(由 from、to 和 resolution 选项确定),滑块的位置选择特定的实数值。
缩放部件可以显示三个注释:
出现在部件右上角的标签(水平缩放部件为左上角)。
显示在滑块左侧的数字(水平缩放部件为滑块上方)。
显示在当前值左侧的一组数值刻度线(水平缩放部件为槽下方)。
这三个注释中的每一个都可以使用配置选项启用或禁用。
语法
这是一个创建此部件的简单语法:
TkScale.new { .....Standard Options.... .....Widget-specific Options.... }
标准选项
- activebackground
- background
- borderwidth
- cursor
- font
- foreground
- highlightbackground
- highlightcolor
- highlightthickness
- orient
- relief
- repeatdelay
- repeatinterval
- takefocus
- troughcolor
这些选项已在上一章中进行了描述。
部件特定选项
序号 | 选项和描述 |
---|---|
1 | bigincrement =>整数 与缩放部件的一些交互会导致其值以大增量更改;此选项指定大增量的尺寸。如果指定为 0,则大增量默认为缩放范围的 1/10。 |
2 | command =>字符串 指定每当通过方法更改缩放部件的值时要调用的 Ruby/Tk 回调的前缀。 |
3 | digits =>整数 一个整数,指定将缩放部件的值转换为字符串时应保留多少个有效数字。如果数字小于或等于零,则缩放部件会选择最小的值,以确保每个可能的滑块位置都打印为不同的字符串。 |
4 | from =>整数 对应于缩放部件左侧或顶端的实数值。 |
5 | label =>字符串 要显示为缩放部件标签的字符串。对于垂直缩放部件,标签显示在缩放部件顶端右侧。对于水平缩放部件,标签显示在缩放部件左侧上方。 |
6 | length =>整数 指定缩放部件所需的长尺寸(以屏幕单位为单位)。 |
7 | resolution =>整数 指定缩放部件分辨率的实数值。如果此值大于零,则缩放部件的值将始终四舍五入到此值的偶数倍,刻度线和缩放部件的端点也是如此。如果该值小于零,则不进行舍入。默认为 1。 |
8 | showvalue =>布尔值 指定一个布尔值,指示是否要显示缩放部件的当前值。 |
9 | sliderlength =>整数 指定滑块的大小(以屏幕单位为单位,沿滑块的长尺寸)。 |
10 | sliderrelief =>字符串 指定绘制滑块时使用的浮雕,例如raised或sunken。 |
11 | state =>字符串 指定缩放部件的三种状态之一:normal、active或disabled。 |
12 | tickinterval =>整数 必须是实数值。确定显示在滑块下方或左侧的数值刻度线之间的间距。如果为 0,则不显示刻度线。 |
13 | to =>整数 指定对应于缩放部件右侧或底部的实数值。此值可以小于或大于from选项。 |
14 | variable =>变量 指定要链接到缩放部件的全局变量的名称。每当变量的值更改时,缩放部件都会更新以反映此值。每当以交互方式操作缩放部件时,变量都会修改以反映缩放部件的新值。 |
15 | width =>整数 指定槽所需窄尺寸(以屏幕单位为单位)。 |
操作缩放部件
缩放部件可以使用以下方法:
coords(?value?) 返回一个列表,其元素是对应于 value 的槽中心线上的点的 x 和 y 坐标。如果省略 value,则使用缩放部件的当前值。
get(?x, y?) 如果省略 x 和 y,则返回缩放部件的当前值。如果指定 x 和 y,则它们给出部件内的像素坐标;该命令返回对应于给定像素的缩放部件值。
identify(x, y) 返回一个字符串,指示x和y给出的坐标下缩放部件的哪一部分。返回值slider表示该点位于滑块上;trough1表示该点位于滑块上方或左侧的部分;trough2表示该点位于滑块下方或右侧的部分。
set(value) 此命令用于更改缩放部件的当前值,从而更改显示滑块的位置。Value 给出缩放部件的新值。如果缩放部件被禁用,则此命令无效。
事件绑定
Ruby/Tk 自动为缩放部件创建类绑定,使它们具有以下默认行为。如果垂直和水平缩放部件的行为不同,则描述水平行为(括号内)。
如果在槽中按下按钮 1,则缩放部件的值将按 resolution 选项的值递增或递减,以便滑块沿光标方向移动。如果按住按钮,则操作会自动重复。
如果在滑块上按下按钮 1,则可以使用鼠标拖动滑块。
如果在槽中按下按钮 1 且同时按下 Control 键,则滑块将移动到其范围的末端,方向朝向鼠标光标。
如果按下按钮 2,则缩放部件的值将设置为鼠标位置。如果在按下按钮 2 的情况下拖动鼠标,则缩放部件的值会随着拖动而更改。
向上键和向左键使滑块向上(向左)移动 resolution 选项的值。
向下键和向右键使滑块向下(向右)移动 resolution 选项的值。
Control-Up 和 Control-Left 使滑块向上(向左)移动 bigIncrement 选项的值。
Control-Down 和 Control-Right 使滑块向下(向右)移动 bigIncrement 选项的值。
Home 将滑块移动到其范围的顶部(左侧)端。
End 将滑块移动到其范围的底部(右侧)端。
如果使用 state 选项禁用缩放部件,则上述绑定均无效。
示例
require "tk" $scale = TkScale.new { orient 'horizontal' length 280 from 0 to 250 command (proc {printheight}) tickinterval 50 pack } def printheight height = $scale.get() print height, "\n" end Tk.mainloop
这将产生以下结果: