4

我正在使用 PyGTK,试图提出一个小部件的组合,这些小部件将执行以下操作:

  • 让我在一列中添加无数个小部件
  • 提供垂直滚动条以到达底部的滚动条
  • 调整窗口大小时,调整小部件的宽度以填充可用的水平空间

谢谢 - 我是 GTK 的新手。

4

2 回答 2

8
  • 列中无数的小部件:听起来像 GtkVBox。
  • 垂直滚动条:将您的 VBox 放在 GtkScrolledWindow 中。
  • 水平拉伸:这需要为 VBox、ScrolledWindow 和其他小部件设置适当的属性。至少在 Glade 中,默认值似乎主要处理这个问题(您可能想要更改 ScrolledWindow 的滚动条策略)。

现在是诀窍。如果您只是按照我上面列出的方式进行操作,VBox 的内容将尝试垂直和水平调整大小,并且您将无法获得滚动条。解决方案是将您的 VBox 放在 GtkViewport 中。

所以最终的层次结构是 ScrolledWindow(Viewport(VBox(widgets)))。

于 2009-01-23T19:23:01.063 回答
0

史蒂夫在代码中所说的:

vbox = gtk.VBox()
vbox.pack_start(widget1, 1, 1) ## fill and expand
vbox.pack_start(widget2, 1, 1) ## fill and expand
vbox.pack_start(widget3, 1, 1) ## fill and expand
swin = gtk.ScrolledWindow()
swin.add_with_viewport(vbox)
于 2011-03-26T06:54:52.347 回答