构造函数

GioMenuItemnew_section

自:2.32

声明 [源]

GMenuItem*
g_menu_item_new_section (
  const gchar* label,
  GMenuModel* section
)

描述 [源]

创建一个新的表示节的GMenuItem

这是一个围绕g_menu_item_new()和 g_menu_item_set_section()的便利API。

将一个菜单显示为另一个菜单的部分的效果与字面意思相同:来自section的项目成为menu_item添加到菜单的直接部分。

通常在两个非空节之间显示视觉分隔。如果labelNULL,则它将包含在视觉指示中。这允许在菜单中具有带标签的子节。

作为一个简单的例子,考虑一个简单程序的典型“编辑”菜单。它可能包含“撤销”和“重做”项目,然后是一个分隔符,然后是“剪切”、“复制”和“粘贴”。

这可以通过创建三个GMenu实例来完成。第一个将包含“撤销”和“重做”项目,第二个将包含“剪切”、“复制”和“粘贴”项目。然后将第一个和第二个菜单添加为第三个菜单的子菜单。在XML格式中,它看起来大致如下

<menu id='edit-menu'>
  <section>
    <item label='Undo'/>
    <item label='Redo'/>
  </section>
  <section>
    <item label='Cut'/>
    <item label='Copy'/>
    <item label='Paste'/>
  </section>
</menu>

以下示例与此完全等效。它更多地说明了菜单和项目之间确切关系(同时记住,“链接”元素定义了一个与包含菜单相关联的新菜单)。第二个示例的样式更为冗长且难以阅读(因此除了解释真正发生的事情外,不建议使用)。

<menu id='edit-menu'>
  <item>
    <link name='section'>
      <item label='Undo'/>
      <item label='Redo'/>
    </link>
  </item>
  <item>
    <link name='section'>
      <item label='Cut'/>
      <item label='Copy'/>
      <item label='Paste'/>
    </link>
  </item>
</menu>

自:2.32

参数

label

类型: const gchar*

节标签,或NULL

该参数可以是NULL
数据由函数的调用者拥有。
该值是一个以空字符终止的UTF-8字符串。
section

类型: GMenuModel

包含节项的GMenuModel

数据由函数的调用者拥有。

返回值

类型: GMenuItem

一个新的GMenuItem

函数的调用者拥有数据,并且负责释放它。