我正在实现一个基于Gtk.EventBox
的自定义Gtk#小部件。当我将其插入HBox
或VBox
时,它会占用OnSizeRequested
方法返回的确切大小。
如何让我的小部件占用父框,窗口或小部件给它的所有空间?就像HBox一样。
答案 0 :(得分:2)
在GTK + 2和GTK + 3中进行打包的首选方式略有不同。使用GTK +,您通常会使用expand
的{{1}}和fill
属性来控制空间的分配方式。使用GTK + 3时,他们建议使用GtkBox
,vertical-expand
,horizontal-expand
,vertical-fill
。
了解包装工作原理的一个好方法是使用Glade来填充和展开属性,以便您可以实时查看效果。旧教程(稍微过时)显示了不同包装属性的一些屏幕截图:How_Packing_Effects_the_Layout
在开发小部件时,小部件的用户更有可能决定如何在更大的UI中打包它。但是,如果您的小部件是一个复合小部件(由其他小部件构建),那么您将需要正确打包其他小部件。
答案 1 :(得分:0)
PackStart和PackEnd有一个fill参数来指定应该展开以填充框的项目。你可能想要PackStart(widget,true,true,0);