Ruby/TK - Paned Windows 窗格窗口小部件
Panedwindow 小部件可让您将两个或多个可调整大小的小部件彼此上下(或左右)堆叠。
用户可以通过拖动位于它们之间的窗扇来调整每个窗格的相对高度(或宽度)。 通常,您添加到 panedwindow 的小部件将是包含许多其他小部件的框架。
语法
这是创建此小部件的简单语法 −
Tk::Tile::Paned.new(root) { .....Standard Options.... .....Widget Specific Options.... }
标准选项
- class
- cursor
- style
- takefocus
小部件特定选项
序号 | 选项 & 描述 |
---|---|
1 | orient => String horizontal 或 vertical 之一。 指定分隔符的方向。 |
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
这将产生以下结果 −