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

这将产生以下结果 −

Ruby/Tk Frame

❮ Ruby Tk 指南