正确,我应该说“使用 gcc”而不是“在 Linux 上”,这就像使用品牌名称而不是产品一样,只是习惯而已(gcc 在 Linux 上很常见,而 Microsoft 编译器在 Windows 上很常见)。@NguyễnTùngDương 互联网上有很多相互矛盾或不完整的信息,这就是为什么我想知道官方标准对此有何规定,既然你问了这个问题,最好能添加它。似乎 chux 的回答说它依赖于实现,这正是我所怀疑的。
但是此代码还存在“外部”问题。您的 action bar 是窗口的唯一子项。因此,无论您为按钮定义什么大小 - 您都不会看到它,因为在这种情况下,操作栏将增长到窗口的内部高度。要查看 的不同大小 action bar ,我们需要 action bar 和其他东西。 action bar 总是自动水平增长,但具有固定的高度(这取决于栏内的按钮)。因此,我们需要在操作栏下方有另一个小部件,具有垂直自动调整大小的功能,以便操作栏可以保留其手动定义的高度。
// The box is a layout container which holds other widgets
GtkWidget *box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
// The child of a window must be a top layout widget
gtk_window_set_child (GTK_WINDOW (window), box);
// Almost any widget is good for this example.
// The scrolled window is good enough.
GtkWidget *sw = gtk_scrolled_window_new ();
gtk_widget_set_vexpand (sw, TRUE);
// Now add both widgets into the layout container
gtk_box_append (GTK_BOX (box), topActionBar);
gtk_box_append (GTK_BOX (box), sw);
// and the next line will do what you want
gtk_widget_set_size_request(GTK_WIDGET(helpLabel), -1, 200);