Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 哪个GTK小部件组合用于小部件的可滚动列?_Python_Gtk_Pygtk_Widget - Fatal编程技术网

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

Python 哪个GTK小部件组合用于小部件的可滚动列?,python,gtk,pygtk,widget,Python,Gtk,Pygtk,Widget,我正在与PyGTK合作,试图提出一个组合小部件,它将完成以下任务: 让我在一列中添加无数个小部件 提供一个垂直滚动条,以到达底部的滚动条 调整窗口大小时,调整窗口小部件的宽度以填充可用的水平空间 谢谢-我是GTK的新手。 一列中有无数的小部件:听起来像GtkVBox 垂直滚动条:将VBox放在GtkScrolledWindow中 水平拉伸:这需要为VBox、ScrolledWindow和其他小部件设置适当的属性。至少在Glade中,默认设置似乎主要处理这个问题(您可能需要更改Scrolled

我正在与PyGTK合作,试图提出一个组合小部件,它将完成以下任务:

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

  • 一列中有无数的小部件:听起来像GtkVBox
  • 垂直滚动条:将VBox放在GtkScrolledWindow中
  • 水平拉伸:这需要为VBox、ScrolledWindow和其他小部件设置适当的属性。至少在Glade中,默认设置似乎主要处理这个问题(您可能需要更改ScrolledWindow的滚动条策略)
现在开始玩把戏。如果您只执行上面列出的操作,VBox的内容将尝试垂直和水平调整大小,您将无法获得滚动条。解决方案是将VBox放在GtkViewport中


因此,最终的层次结构是ScrolledWindow(Viewport(VBox(widgets))。

Steve在代码中说:

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)

我正在做这件事,但您将默认设置指向Glade,这让我回顾了将底层小部件打包到VBox中的方法。谢谢你的帮助!