如何使小部件占用Gtk.HBox中的所有可用空间

时间:2011-12-20 16:28:16

标签: gtk gtk# gtk2

我正在实现一个基于Gtk.EventBox的自定义Gtk#小部件。当我将其插入HBoxVBox时,它会占用OnSizeRequested方法返回的确切大小。

如何让我的小部件占用父框,窗口或小部件给它的所有空间?就像HBox一样。

2 个答案:

答案 0 :(得分:2)

在GTK + 2和GTK + 3中进行打包的首选方式略有不同。使用GTK +,您通常会使用expand的{​​{1}}和fill属性来控制空间的分配方式。使用GTK + 3时,他们建议使用GtkBoxvertical-expandhorizontal-expandvertical-fill

了解包装工作原理的一个好方法是使用Glade来填充和展开属性,以便您可以实时查看效果。旧教程(稍微过时)显示了不同包装属性的一些屏幕截图:How_Packing_Effects_the_Layout

在开发小部件时,小部件的用户更有可能决定如何在更大的UI中打包它。但是,如果您的小部件是一个复合小部件(由其他小部件构建),那么您将需要正确打包其他小部件。

答案 1 :(得分:0)

PackStart和PackEnd有一个fill参数来指定应该展开以填充框的项目。你可能想要PackStart(widget,true,true,0);