Ruby/TK - 框架部件



描述

一个框架(frame)部件显示为一个简单的矩形。框架主要用作其他部件的容器,这些部件受几何管理器(如grid)的控制。

框架的唯一特性是其背景颜色和可选的3D边框,使框架看起来是凸起的或凹陷的。

语法

这是一个创建框架部件的简单语法:

TkFrame.new {
   .....Standard Options....
   .....Widget-specific Options....
}

标准选项

  • borderwidth
  • highlightbackground
  • highlightthickness
  • takefocus
  • highlightcolor
  • relief
  • cursor

这些选项已在上一章中介绍。

部件特定选项

序号 选项和描述
1

background => 字符串

此选项与标准background选项相同,只是其值也可以指定为未定义值。在这种情况下,部件将不显示背景或边框,并且不会从其颜色映射中消耗任何颜色用于其背景和边框。

2

colormap => 字符串

指定窗口要使用的颜色映射。该值可以是new(在这种情况下,将为窗口及其子窗口创建一个新的颜色映射),也可以是另一个窗口的名称(必须在同一屏幕上),在这种情况下,新窗口将使用指定窗口的颜色映射。如果未指定colormap选项,则新窗口使用与其父窗口相同的颜色映射。

3

container => 布尔值

该值必须为布尔值。如果为true,则表示此窗口将用作容器,其中将嵌入其他应用程序。该窗口将支持用于几何请求等内容的相应窗口管理器协议。在此应用程序中,该窗口不应有任何自己的子窗口。

4

height => 整数

指定窗口所需的像素或点数高度。

5

width => 整数

指定窗口所需的像素或点数宽度。

事件绑定

创建新框架时,它没有默认事件绑定:框架并非旨在交互使用。

示例

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_guide.htm
广告