哪个GTK小部件组合用于小部件的可滚动列?

时间:2009-01-23 18:53:36

标签: python gtk pygtk widget

我正在与PyGTK合作,试图想出一些小部件组合,它们将执行以下操作:

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

谢谢 - 我是GTK的新手。

2 个答案:

答案 0 :(得分:7)

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

现在就来了。如果您只是执行我上面列出的内容,VBox的内容将尝试垂直和水平调整大小,您将无法获得滚动条。解决方案是将您的VBox放在GtkViewport中。

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

答案 1 :(得分: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)