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
这将产生以下结果 −