GTK&x2B;菜单栏看起来糟透了
我正在按照说明编写Gtk+菜单栏 将棒料包装到带有GTK&x2B;菜单栏看起来糟透了,gtk,menubar,Gtk,Menubar,我正在按照说明编写Gtk+菜单栏 将棒料包装到带有 // "FALSE, TRUE" and "FALSE, FALSE" actually makes no difference gtk_box_pack_start(GTK_BOX(main_vbox), menu_bar, TRUE, FALSE, 0); 菜单栏看起来很糟糕,如下所示: 当我改为: gtk_box_pack_start(GTK_BOX(main_vbox), menu_bar,
// "FALSE, TRUE" and "FALSE, FALSE" actually makes no difference
gtk_box_pack_start(GTK_BOX(main_vbox), menu_bar,
TRUE, FALSE, 0);
菜单栏看起来很糟糕,如下所示:
当我改为:
gtk_box_pack_start(GTK_BOX(main_vbox), menu_bar,
TRUE, TRUE, 0);
它看起来像:
那么,如何使工具栏分配的空间更小?如果我正确理解了您的问题,您希望:
button\u hbox
和menu\u bar
,因为两者都可以称为“工具栏”)
理解传递给的布尔布局参数在这里至关重要:
- 如果小部件在计算布局后应该使用其容器中剩余的空白空间,则第一个选项,
,即expand
。以这种方式打包的小部件平等地竞争剩余空间TRUE
- 第二个选项,
,是fill
,如果小部件应该填充它所占用的布局空间,而不是居中(出现浅灰色填充)TRUE
main_vbox
中有一个(或多个,但现在让我们继续使用一个)主小部件,该小部件包含expand
和fill
设置为TRUE
。它周围的卫星窗口小部件包含expand
设置为FALSE
和fill
设置为TRUE
。例如:
+-------------------------------------------+
| Menu bar: expand = FALSE, fill = TRUE |
+-------------------------------------------+
| Toolbar: expand = FALSE, fill = TRUE |
+-------------------------------------------+ ^
| | |
| | | The height of this widget
| Main widget: expand = TRUE, fill = TRUE | | varies depending on the
| | | height of its container.
| | |
+-------------------------------------------+ v
| Status bar: expand = FALSE, fill = TRUE |
+-------------------------------------------+
在您的情况下,由于您不希望菜单栏
填满可用空间,按钮盒
应该这样做:
// Menu bar: satellite widget, expand = FALSE, fill = TRUE
gtk_box_pack_start(GTK_BOX(main_vbox), menu_bar, FALSE, TRUE, 0);
// Button bar: main widget, expand = TRUE, fill = TRUE
gtk_box_pack_start(GTK_BOX(main_vbox), button_hbox, TRUE, TRUE, 0);
它不是有一个特殊的位置来放置吗?我不熟悉GTK的这一方面,但我知道Qt的QMainWindow有一个特定的菜单栏位置;它有三个点:菜单栏、中央部件和状态栏。@Frédéric Hamidi:Oops。我犯了一个错误。很抱歉我修改了我的问题。为难看的ASCII艺术道歉,我是老派:)