GTK +菜单栏看起来很糟糕

时间:2011-08-07 15:22:58

标签: gtk menubar

我正在按照here指令编写Gtk +菜单栏。

使用

将条形包装到VBox上时
// "FALSE, TRUE" and "FALSE, FALSE" actually makes no difference
gtk_box_pack_start(GTK_BOX(main_vbox), menu_bar,
                   TRUE, FALSE, 0);

菜单栏看起来很糟糕,像这样:

slim menu bar

当我改为:

 gtk_box_pack_start(GTK_BOX(main_vbox), menu_bar,
                    TRUE, TRUE, 0);

看起来像:

enter image description here

那么,如何让工具栏分配更小的空间?

1 个答案:

答案 0 :(得分:9)

如果我理解你的问题,你想:

  1. 摆脱菜单栏周围的浅灰色填充。
  2. 执行上述操作而不展开菜单栏以填充可用空间。
  3. 因此,其他小部件(即菜单栏下方的按钮栏)的打包模式起作用(为清楚起见,我将其称为button_hbox和{分别为{1}},因为两者都可以作为“工具栏”)。

    了解传递给gtk_box_pack_start()的布尔布局参数在这里是最重要的:

    • 如果小部件在计算布局后应占用其容器中剩余的空白区域,则第一个menu_barexpand。以这种方式包装的小部件同样竞争剩余的空间。

    • 第二个TRUEfill,如果小部件应该填充它消耗的布局空间而不是在其中居中(有浅灰色的填充)。

    我们的想法是,您在TRUE中拥有一个(或更多,但让我们坚持一个)主要小部件,并且该小部件包含main_vboxexpand集到fill。它周围的卫星小部件被TRUE设置为expandFALSE设置为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应该这样做:

    button_hbox