【问题标题】:Big gaps in Menu using GMenu使用 GMenu 的菜单中的巨大差距
【发布时间】:2019-08-08 11:03:47
【问题描述】:

当使用 GMenu (Gnome/Gtk) 创建菜单时,菜单项的标签(-> 图片)有很大的差距。有什么想法可以解决这个问题吗?

#include <gio/gio.h>
#include <glib.h>
#include <glib-object.h>
#include <glib/gi18n.h>

//....
//....


if(title && (action || submenu))
{
   GMenuItem *item;

   if(submenu)
   {
      item = g_menu_item_new_submenu (title, G_MENU_MODEL(submenu));
   }
   else
   {
      item = g_menu_item_new(title, action);
      if (icon != NULL)
      {
         g_menu_item_set_attribute (item, "icon", "s", icon);
      }
   }

//.....
//....

Picture

【问题讨论】:

    标签: c linux gtk


    【解决方案1】:

    不幸的是,intended to be 就是这样。 您可以坚持使用已弃用的GtkImageMenuItem,这在您将应用程序移植到 GTK 4 之前没有问题。如果您真的想避免弃用的组件,可以按照文档的建议将图像 + 标签包装在 GtkBox 中,虽然它不是那么简单,但有一些必要的怪癖来获得一个体面的解决方案:

    1. 您需要在菜单上使用gtk_menu_set_reserve_toggle_size 并将其设置为FALSE
    2. 然后您需要为每个菜单项创建标签和图像,但是对于没有图标的项目,必须创建一个充当填充物的图像,即gtk_image_new_from_icon_name ("", GTK_ICON_SIZE_BUTTON)

    您可以找到完整的示例here

    注意:不能保证这将在 GTK 4 上正常工作。

    【讨论】:

      猜你喜欢
      • 2021-02-12
      • 2017-06-27
      • 1970-01-01
      • 1970-01-01
      • 2015-08-17
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 2015-07-29
      相关资源
      最近更新 更多