GTK3:使容器与底部对齐,填充水平空间但不垂直

时间:2018-03-23 09:44:33

标签: gtk3 glade

所有

我正在使用GTK3在C中编写应用程序并使用Glade构建UI。 我要做的是制作一个容器,它将留在框架的底部,填充水平空间但不垂直。我会在那里放几个按钮,不要让它们在框架中松动。现在我只有足够的代码来显示窗口,看看它在运行时的外观,只关注UI。

到目前为止我尝试过:

  • GtkBox:如果我可以调整它的高度,那将是完美的,所以我在它上方有自由空间,用于另一个容器。但似乎需要留下任何可用空间(即整个屏幕)。
  • GtkPaned:如果我可以阻止它在运行时调整大小并隐藏句柄,那将是完美的。但是,这就是这个小部件的目的,所以它似乎不可能。
  • GtkGrid:和GtkBox一样。

对于那些已经使用Borland C ++ Builder或Delphi的人来说,它是" Panel"我想重复一遍。也就是说,将容器放在框架中,将其对齐到底部(使其填满水平空间),然后在设计时调整高度。

有什么想法吗?如果您需要更多信息,请告诉我。

*编辑:亚历山大,这是我尝试扩展您的评论时,即在容器内使用多个按钮和容器(请参阅Glade右上方的层次结构)。 当所有按钮都展开"关"时,它适用于1个按钮,当它是" On" (然后我不再调整高度了。)

"No" to all buttons "Yes" to all buttons

1 个答案:

答案 0 :(得分:0)

  • 最简单的解决方案:使用GtkBox并使用gtk_box_pack_end
  • 另一种方法是控制容器对齐和扩展行为(在容器本身上使用gtk_widget_set_halign/gtk_widget_set_valigngtk_widget_set_hexpand/gtk_widget_set_vexpand

编辑:没有注意到你正在使用林间空地。创建一个gtkbox,添加一个子项并更改子包的类型Create a gtkbox, add a child and change child's pack type

另请注意:如果要在另一个容器附近添加容器,则应将两个容器打包到另一个容器中。