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