在gtk工具栏中安排图标

时间:2010-12-14 09:28:36

标签: linux gtk icons

我正在尝试使用一堆项目创建一个GTK工具栏。我的问题是,我无法将它们均匀分开。所有图标在条形图的左侧聚集在一起。如何让它们展开?出于性能原因,我想避免使用像hbox等其他小部件。这是我写的代码:

GtkWidget* navbar = gtk_toolbar_new();
gtk_toolbar_set_style(GTK_TOOLBAR(navbar), GTK_TOOLBAR_ICONS);
gtk_toolbar_set_icon_size(GTK_TOOLBAR(navbar), GTK_ICON_SIZE_SMALL_TOOLBAR);

GtkToolItem* open = gtk_tool_button_new_from_stock(GTK_STOCK_JUMP_TO);
gtk_toolbar_insert(GTK_TOOLBAR(navbar), open, 0);

GtkToolItem* play = gtk_tool_button_new_from_stock(GTK_STOCK_MEDIA_PLAY);
gtk_toolbar_insert(GTK_TOOLBAR(navbar), play, 1);  

GtkToolItem* pause = gtk_tool_button_new_from_stock(GTK_STOCK_MEDIA_PAUSE);
gtk_toolbar_insert(GTK_TOOLBAR(navbar), pause, 2);

以下是我得到的安排:

alt text

2 个答案:

答案 0 :(得分:5)

您可以在每个项目之间添加GtkSeparatorToolItem;引用GTK文档,

  

如果属性expandTRUE且属性drawFALSE,则GtkSeparatorToolItem将充当“弹簧”,强制其他项目为工具栏的两端。

听听放松说的话,不要这样做!甚至不要将它们放在工具栏的中心。 GTK小部件设计用于各种不同的大小,分辨率,桌面主题,语言和配置。你设计应用程序的工作方式,GTK设计它的外观(我向你保证,GTK团队已经考虑了比你更多的可用性。)用户希望工具按钮位于某个地方。

答案 1 :(得分:1)

我相信这是设计的;工具栏应该紧密包装,以使它们更有用。在我个人看来,如果在整个水平空间内均匀分布,示例图像中的六个按钮看起来会更糟。

也就是说,您可以尝试在项目上使用gtk_tool_item_set_expand(),然后再将它们添加到工具栏中。