- 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 - 比例小部件
描述
Scale是一个显示矩形槽和小滑块的小部件。波谷对应于一系列实际值(由“起始”、“结束”和“分辨率”选项确定),滑块的位置选择特定的实际值。
比例小部件中可以显示三个注释 -
出现在小部件右上角的标签(水平缩放的左上角)。
显示在滑块左侧的数字(水平比例的滑块正上方)。
当前值左侧的数字刻度线集合(位于水平刻度的谷底下方)。
这三个注释中的每一个都可以使用配置选项启用或禁用。
句法
这是创建此小部件的简单语法 -
TkScale.new { .....Standard Options.... .....Widget-specific Options.... }
标准选项
- 活动背景
- 背景
- 边框宽度
- 光标
- 字体
- 前景
- 突出显示背景
- 突出显示颜色
- 突出显示厚度
- 东方
- 宽慰
- 重复延迟
- 重复间隔
- 聚焦
- 槽色
这些选项已在前一章中进行了描述。
小部件特定选项
先生。 | 选项和说明 |
---|---|
1 | 大增量 =>整数 与秤的某些相互作用会导致其值发生较大增量变化;该选项指定大增量的大小。如果指定为 0,则大增量默认为比例范围的 1/10。 |
2 | 命令 =>字符串 指定每当通过方法更改比例值时要调用的 Ruby/Tk 回调的前缀。 |
3 | 数字 =>整数 一个整数,指定将比例值转换为字符串时应保留多少位有效数字。如果数字小于或等于零,则比例尺会选择最小值,以保证每个可能的滑块位置都打印为不同的字符串。 |
4 | 来自 =>整数 与刻度的左端或上端相对应的实数值。 |
5 | 标签 =>字符串 显示为刻度标签的字符串。对于垂直刻度,标签显示在刻度顶端的右侧。对于水平刻度,标签显示在刻度左端的正上方。 |
6 | 长度 =>整数 以屏幕单位指定刻度所需的长尺寸 |
7 | 分辨率 =>整数 指定比例分辨率的实数值。如果该值大于零,则刻度的值将始终四舍五入为该值的偶数倍,刻度线和刻度的端点也是如此。如果该值小于零,则不会发生舍入。默认为 1 |
8 | 显示值 => 布尔值 指定一个布尔值,指示是否显示比例的当前值。 |
9 | 滑块长度 =>整数 指定滑块的大小,沿滑块的长尺寸以屏幕单位测量。 |
10 | sliderrelief =>字符串 指定绘制滑块时要使用的浮雕,例如凸起或凹陷。 |
11 | 状态 =>字符串 指定刻度的三种状态之一:正常、活动或禁用。 |
12 | 刻度间隔 =>整数 必须是真实值。确定滑块下方或左侧显示的数字刻度线之间的间距。如果为 0,则不显示刻度线。 |
13 | 到 =>整数 指定对应于刻度的右端或下端的实际值。该值可以小于或大于from选项。 |
14 | 变量 =>变量 指定链接到比例的全局变量的名称。每当变量的值发生变化时,比例就会更新以反映该值。每当以交互方式操作比例时,变量都会被修改以反映比例的新值。 |
15 | 宽度 =>整数 以屏幕单位指定所需的槽窄尺寸 |
操纵秤
以下方法可用于缩放小部件 -
coords(?value?)返回一个列表,其元素是沿槽中心线与 value 相对应的点的 x 和 y 坐标。如果省略 value,则使用比例的当前值。
get(?x, y?)如果省略 x 和 y,则返回比例的当前值。如果指定了 x 和 y,它们给出小部件内的像素坐标;该命令返回与给定像素对应的比例值。
recognize(x, y)返回一个字符串,指示比例尺的哪一部分位于x和y给定的坐标下方。slider的返回值表示该点位于滑块之上;trough1表示该点位于滑块上方或左侧的滑块部分之上;trough2表示该点位于滑块下方或右侧的滑块部分之上。
set(value)调用此命令可以更改比例的当前值,从而更改滑块的显示位置。值给出了比例的新值。如果禁用比例,该命令无效。
事件绑定
Ruby/Tk 自动为标度创建类绑定,为它们提供以下默认行为。如果垂直和水平尺度的行为不同,则水平行为在括号中描述。
如果在槽中按下按钮 1,则比例值将增加或减少分辨率选项的值,以便滑块沿光标方向移动。如果按住该按钮,该操作会自动重复。
如果在滑块上按下按钮 1,则可以用鼠标拖动滑块。
如果在按住 Control 键的情况下按下槽中的按钮 1,滑块将朝鼠标光标的方向一直移动到其范围的末端。
如果按下按钮 2,则比例值将设置为鼠标位置。如果按下按钮 2 并拖动鼠标,则比例值会随着拖动而改变。
向上和向左键将滑块向上(向左)移动分辨率选项的值。
向下和向右键将滑块向下(向右)移动分辨率选项的值。
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
这将产生以下结果 -