gtk3 menubutton类型标题栏

时间:2016-01-18 21:44:11

标签: gtk3

我用Google搜索了这个问题,但还没有找到解决方案。我正在从gtk2过渡到gtk3。我喜欢菜单图标在标题栏上打包的方式。我能够在标题栏中添加一个菜单按钮,但它显示一个向下箭头按钮。有没有办法将其更改为有3行的图标。

这正是我想要的:

screenshot

我现在的代码看起来像这样

header_bar = gtk_header_bar_new();
gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (header_bar), TRUE);
gtk_header_bar_set_title(GTK_HEADER_BAR(header_bar),PRG_NAME);
gtk_header_bar_set_subtitle(GTK_HEADER_BAR(header_bar),tool_version);
//gtk_header_bar_set_decoration_layout(GTK_HEADER_BAR(header_bar), "menu,minimize,maximize,close");
gtk_window_set_titlebar (GTK_WINDOW (window), header_bar);

//menu_popover = gtk_menu_new();
menubar = gtk_menu_button_new();
gtk_header_bar_pack_end(GTK_HEADER_BAR(header_bar),menubar);

2 个答案:

答案 0 :(得分:0)

如果您使用XML文件存储ui,则可以自定义图标:

<object class="GtkMenuButton" id="button_header_menu">
    <property name="image">image_header_menu</property>
</object>
<object class="GtkImage" id="image_header_menu">
    <property name="visible">True</property>
    <property name="icon_name">open-menu-symbolic</property>
</object>

如果没有,你可以这样做:

icon = Gio.ThemedIcon(name="open-menu-symbolic")
image = Gtk.Image.new_from_gicon(icon, Gtk.IconSize.BUTTON)
button_header_menu.get_child().destroy()
button_header_menu.add(image)
button_header_menu.show_all()

我在python中编码,但是移植这段代码应该非常简单。

答案 1 :(得分:0)

感谢您让我走上正轨。以下是我的表现

header_bar = gtk_header_bar_new();
gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (header_bar), TRUE);
gtk_header_bar_set_title(GTK_HEADER_BAR(header_bar),PRG_NAME);
gtk_header_bar_set_subtitle(GTK_HEADER_BAR(header_bar),tool_version);
//gtk_header_bar_set_decoration_layout(GTK_HEADER_BAR(header_bar), "menu,minimize,maximize,close");
gtk_window_set_titlebar (GTK_WINDOW (window), header_bar);

//menu_popover = gtk_menu_new();
menu = gtk_button_new_from_icon_name("open-menu-symbolic", GTK_ICON_SIZE_BUTTON);
gtk_header_bar_pack_end(GTK_HEADER_BAR(header_bar),menu);