Ruby/TK - Paned Windows 窗格窗口小部件

Panedwindow 小部件可让您将两个或多个可调整大小的小部件彼此上下(或左右)堆叠。

用户可以通过拖动位于它们之间的窗扇来调整每个窗格的相对高度(或宽度)。 通常,您添加到 panedwindow 的小部件将是包含许多其他小部件的框架。

语法

这是创建此小部件的简单语法 −

Tk::Tile::Paned.new(root) {
   .....Standard Options....
   .....Widget Specific Options....
}

标准选项

  • class
  • cursor
  • style
  • takefocus

小部件特定选项

序号 选项 & 描述
1

orient => String

horizontalvertical 之一。 指定分隔符的方向。

2

width => Integer

如果存在且大于零,则指定所需的小部件宽度(以像素为单位)。 否则,请求的宽度由托管窗口的宽度决定。

3

height => Integer

如果存在且大于零,则指定所需的小部件高度(以像素为单位)。 否则,请求的高度由托管窗口的高度决定。


操作窗格

  • 调用 "add" 方法将在窗格列表的末尾添加一个新窗格。"insert position subwindow" 方法允许您将窗格放置在窗格列表中的给定位置(0..n-1); 如果窗格已由 panedwindow 管理,它将被移动到新位置。您可以使用 "forget subwindow" 从panedwindow 中删除一个窗格; 您还可以传递位置而不是子窗口。

  • 其他选项可让您对每个窗格的相对权重进行签名,这样如果整个 panedwindow 调整大小,某些窗格将比其他窗格获得更多空间。 同样,您可以调整窗格窗口中项目之间每个窗扇的位置。 详见命令参考

示例

require 'tk'
require 'tkextlib/tile'

$resultsVar = TkVariable.new
root = TkRoot.new
root.title = "Window"

p = Tk::Tile::Paned.new(root)do
   height 110
   place('height' => 100, 'width' => 200, 'x' => 10, 'y' => 10)
end

f1 = TkFrame.new(p) {
   relief 'groove'
   borderwidth 3
   background "red"
   padx 30
   pady 30
   pack('side' => 'left', 'pady' => 100)
}
f2 = TkFrame.new (p){
   relief 'groove'
   borderwidth 3
   background "yellow"
   padx 30
   pady 30
   pack('side' => 'right', 'pady' => 100)
}

p.add f1, nil
p.add f2, nil

Tk.mainloop

这将产生以下结果 −

Ruby/Tk paned

❮ Ruby Tk 指南