Ruby/TK - Frame 框架小部件
说明
frame 是一个显示为简单矩形的小部件。 框架主要用作其他小部件的容器,这些小部件受网格等几何管理器的控制。
框架的唯一特征是其背景颜色和可选的 3-D 边框,以使框架看起来凸起或凹陷。
语法
这是创建框架小部件的简单语法 −
TkFrame.new {
.....Standard Options....
.....Widget-specific Options....
}
标准选项
- borderwidth
- highlightbackground
- highlightthickness
- takefocus
- highlightcolor
- relief
- cursor
这些选项已在前一章中描述。
小部件特定选项
| 序号 | 选项 & 描述 |
|---|---|
| 1 | background => String 此选项与标准的 background 选项相同,只是它的值也可以指定为未定义的值。 在这种情况下,小部件将不显示背景或边框,并且不会从其颜色图中为背景和边框消耗任何颜色。 |
| 2 | colormap => String 指定用于窗口的颜色图。 该值可以是 new,在这种情况下会为窗口及其子窗口创建一个新的颜色图,或者是另一个窗口的名称(必须在同一个屏幕上),在这种情况下新的 window 将使用指定窗口中的颜色图。 如果未指定 colormap 选项,则新窗口使用与其父窗口相同的颜色图。 |
| 3 | container => Boolean 该值必须是布尔值。 如果为真,则意味着此窗口将用作嵌入其他应用程序的容器。 该窗口将支持几何请求等适当的窗口管理器协议。 此应用程序中的窗口不应有任何自己的子级。 |
| 4 | height => Integer 以像素或点为单位指定所需的窗口高度。 |
| 5 | width => Integer 以像素或点为单位指定所需的窗口宽度。 |
事件绑定
创建新框架时,它没有默认的事件绑定:框架不是交互式的。
示例
require "tk"
f1 = TkFrame.new {
relief 'sunken'
borderwidth 3
background "red"
padx 15
pady 20
pack('side' => 'left')
}
f2 = TkFrame.new {
relief 'groove'
borderwidth 1
background "yellow"
padx 10
pady 10
pack('side' => 'right')
}
TkButton.new(f1) {
text 'Button1'
command {print "push button1!!\n"}
pack('fill' => 'x')
}
TkButton.new(f1) {
text 'Button2'
command {print "push button2!!\n"}
pack('fill' => 'x')
}
TkButton.new(f2) {
text 'Quit'
command 'exit'
pack('fill' => 'x')
}
Tk.mainloop
这将产生以下结果 −

