GtkPopoverMenu

描述 [源代码]

final class Gtk.PopoverMenu : Gtk.Popover
  implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.ShortcutManager {
  /* No available fields */
}

GtkPopoverMenuGtkPopover 的一个子类,用于实现菜单行为。

An example GtkPopoverMenu

GtkPopoverMenu 将其子元素视为菜单并允许在它们之间进行切换。它可以将子菜单作为传统的嵌套子菜单打开,或者以更加触控友好的滑动形式打开。属性 GtkPopoverMenu:flags 控制此外观。

GtkPopoverMenu 主要用于菜单模型,使用 gtk_popover_menu_new_from_model()。如果你需要将其他小部件(例如 GtkSpinButtonGtkSwitch)放入弹出窗口中,则可以使用 gtk_popover_menu_add_child()

要获得更多对话框类似的行为,请使用纯 GtkPopover

GtkBuilderGMenuModel 理解的 XML 格式由一个顶级 <menu> 元素组成,其中包含一个或多个 <item> 元素。每个 <item> 元素都包含具有强制名称属性的 <attribute><link> 元素。<link> 元素的内容模型与 <menu> 相同。你可以使用 <submenu><section> 元素来替代 <link name="submenu"><link name="section">

<menu id='app-menu'>
  <section>
    <item>
      <attribute name='label' translatable='yes'>_New Window</attribute>
      <attribute name='action'>app.new</attribute>
    </item>
    <item>
      <attribute name='label' translatable='yes'>_About Sunny</attribute>
      <attribute name='action'>app.about</attribute>
    </item>
    <item>
      <attribute name='label' translatable='yes'>_Quit</attribute>
      <attribute name='action'>app.quit</attribute>
    </item>
  </section>
</menu>

构建菜单项时可以使用属性值,例如其他 GtkBuilder 内容。可以使用 translatable="yes" 属性将 <attribute> 元素标记为可翻译。你还可以使用 context 和 comments 属性指定消息上下文和翻译人员评论。为了使用此功能,必须向 GtkBuilder 提供要使用的 gettext 域。

在构建菜单项时使用以下属性

  • label”:要显示的用户可见字符串
  • use-markup”:菜单项中的文本是否包括 Pango 标记
  • action”:要触发的动作的前缀名称
  • target”:激活动作时要使用的参数
  • icon”和“verb-icon”:可能要显示的图标的名称
  • submenu-action”:跟踪子菜单是否已打开的可能要使用的动作的名称
  • hidden-when”:用于确定何时将项目隐藏的字符串。可能的值包括“action-disabled”、“action-missing”、“macos-menubar”。这主要对导出的菜单有用,请参阅 gtk_application_set_menubar()
  • custom”:用于匹配 gtk_popover_menu_add_child()gtk_popover_menu_bar_add_child() 添加的自定义子代,或 UI 文件中的 ID 的字符串 <child type="ID">

在构建部分时会使用以下属性

  • label”:用作部分标题的用户可见字符串
  • display-hint”:用于确定部分特殊格式的字符串。可能的值包括 “horizontal-buttons”、“circular-buttons” 和 “inline-buttons”。所有这些值都表明应将部分显示为水平按钮行。
  • text-direction”:当 “display-hint” 设置为 “horizontal-buttons” 时,用于确定要使用的 GtkTextDirection 的字符串。可能的值包括 “rtl”、“ltr” 和 “none”。

在构建子菜单时会使用以下属性

  • label”:要显示的用户可见字符串
  • icon”:要显示的图标名称

菜单项还将显示加速器,这些加速器通常通过 gtk_application_set_accels_for_action()gtk_widget_class_add_binding_action()gtk_shortcut_controller_add_shortcut() 与操作关联。

快捷方式和手势

GtkPopoverMenu 支持以下键盘快捷方式

  • 空格 激活默认小部件。

CSS 节点

GtkPopoverMenu 只是添加了自定义内容的 GtkPopover 子类,因此它具有相同的 CSS 节点。这是向主 popover 节点添加 .menu 样式类的情况之一。

菜单项的节点名称为 button,类为 .model。如果设置了区域 display-hint,该区域将获取节点 box,类为 horizontal 外加一个与显示提示内容相同的类。请注意,所述框可能不是项目 button 的直接祖先。因此,例如,若要设置 inline-buttons 区域中的项目样式,请选择 .inline-buttons button.model。在菜单中可能感兴趣的其他样式包括 label 节点。

辅助功能

GtkPopoverMenu 使用 GTK_ACCESSIBLE_ROLE_MENU 角色,其项目根据连接到的操作使用 GTK_ACCESSIBLE_ROLE_MENU_ITEMGTK_ACCESSIBLE_ROLE_MENU_ITEM_CHECKBOXGTK_ACCESSIBLE_ROLE_MENU_ITEM_RADIO 角色。

层次结构

hierarchy this GtkPopoverMenu implements_0 GtkAccessible this--implements_0 implements_1 GtkBuildable this--implements_1 implements_2 GtkConstraintTarget this--implements_2 implements_3 GtkNative this--implements_3 implements_4 GtkShortcutManager this--implements_4 ancestor_0 GtkPopover ancestor_0--this ancestor_1 GtkWidget ancestor_1--ancestor_0 ancestor_2 GInitiallyUnowned ancestor_2--ancestor_1 ancestor_3 GObject ancestor_3--ancestor_2

构造函数

gtk_popover_menu_new_from_model

创建一个 GtkPopoverMenu 并根据 model 填充。

gtk_popover_menu_new_from_model_full

创建一个 GtkPopoverMenu 并根据 model 填充。

实例方法

gtk_popover_menu_add_child

向生成的菜单添加自定义窗口小部件。

gtk_popover_menu_get_flags

返回 popover 从其型号创建/显示菜单时使用的标志。

自:4.14

gtk_popover_menu_get_menu_model

返回用于填充弹出菜单的菜单模型。

gtk_popover_menu_remove_child

弃用先前利用 [[email protected]_child()] 添加的小部件。

gtk_popover_menu_set_flags

设置 `popover` 用于基于其菜单模型而创建/显示菜单的标志。

自:4.14

gtk_popover_menu_set_menu_model

在 `popover` 中设置新的菜单模型。

GtkPopover (20) 继承的方法
gtk_popover_get_autohide

返回 popover 是否为模态的。

gtk_popover_get_cascade_popdown

返回 popover 会在模态子级关闭后关闭。

gtk_popover_get_child

获取 `popover` 的子级小部件。

gtk_popover_get_has_arrow

获取此 popover 是否显示指向其相对小部件的箭头。

gtk_popover_get_mnemonics_visible

获取助记符是否可见。

gtk_popover_get_offset

获取先前使用 [[email protected]_offset()] 设置的偏移量。

gtk_popover_get_pointing_to

获取 popover 指向的矩形。

gtk_popover_get_position

返回 `popover` 的首选位置。

gtk_popover_popdown

弹出 `popover`。

gtk_popover_popup

弹出 `popover`。

gtk_popover_present

向 `GtkPopover` 分配一个大小。

gtk_popover_set_autohide

设置 `popover` 是否为模态的。

gtk_popover_set_cascade_popdown

如果 `cascade_popdown` 为 `TRUE`,则在子级模态 popover 关闭时关闭 popover。

gtk_popover_set_child

设置 `popover` 的子级小部件。

gtk_popover_set_default_widget

设置 `GtkPopover` 的默认小部件。

gtk_popover_set_has_arrow

设置此 popover 是否应绘制指向其相对小部件的箭头。

gtk_popover_set_mnemonics_visible

设置助记符是否应可见。

gtk_popover_set_offset

设置计算 popover 位置时要使用的偏移量。

gtk_popover_set_pointing_to

设置 `popover` 指向的矩形。

gtk_popover_set_position

设置 `popover` 出现的首选位置。

GtkWidget (162) 继承的方法

有关方法的完整列表,请参阅 GtkWidget

GObject (43) 继承的方法

有关方法的完整列表,请参阅 GObject

GtkAccessible (19) 继承的方法
gtk_accessible_announce

请求用户的屏幕阅读器播报提供的消息。

自:4.14

gtk_accessible_get_accessible_parent

获取一个可访问对象的父访问对象。

since: 4.10

gtk_accessible_get_accessible_role

获取一个可访问对象的访问角色。

gtk_accessible_get_at_context

获取给定可访问对象的实现。

since: 4.10

gtk_accessible_get_bounds

查询此可访问对象的坐标和尺寸。

since: 4.10

gtk_accessible_get_first_accessible_child

获取一个可访问对象的首个可用子级。

since: 4.10

gtk_accessible_get_next_accessible_sibling

获取一个可访问对象的下个可访问同级。

since: 4.10

gtk_accessible_get_platform_state

查询一个平台状态,如焦点。

since: 4.10

gtk_accessible_reset_property

将可访问属性重置为其默认值。

gtk_accessible_reset_relation

将可访问关系重置为其默认值。

gtk_accessible_reset_state

将可访问状态重置为其默认值。

gtk_accessible_set_accessible_parent

设置一个可访问对象的父级和同级。

since: 4.10

gtk_accessible_update_next_accessible_sibling

更新下一个可访问的兄弟 项。

since: 4.10

gtk_accessible_update_property

更新可访问属性列表。

gtk_accessible_update_property_value

更新可访问属性的阵列。

gtk_accessible_update_relation

更新可访问关系列表。

gtk_accessible_update_relation_value

更新可访问关系的阵列。

gtk_accessible_update_state

更新可访问状态列表。

gtk_accessible_update_state_value

更新可访问状态的阵列。

GtkBuildable(1) 继承的方法
gtk_buildable_get_buildable_id

获取 buildable 对象的 ID

GtkNative(5) 继承的方法
gtk_native_get_renderer

返回用于此 GtkNative 的渲染器。

gtk_native_get_surface

返回此 GtkNative 的表面。

gtk_native_get_surface_transform

检索 self 的表面变换。

gtk_native_realize

实现 GtkNative

gtk_native_unrealize

取消实现 GtkNative

属性

Gtk.PopoverMenu:flags

popover 用于从其模型创建/显示菜单的标志。

自:4.14

Gtk.PopoverMenu:menu-model

菜单的来源模型。

Gtk.PopoverMenu:visible-submenu

可见子菜单的名称。

GtkPopover(8) 继承的属性
Gtk.Popover:autohide

是否在点击外部时关闭弹出菜单。

Gtk.Popover:cascade-popdown

是否在子弹出菜单后弹出弹出菜单。

Gtk.Popover:child

子 小组件。

Gtk.Popover:default-widget

弹出菜单内部的默认 小组件。

Gtk.Popover:has-arrow

是否绘制箭头 。

Gtk.Popover:mnemonics-visible

弹出菜单中是否可见助记符。

Gtk.Popover:pointing-to

弹出菜单指向的父小组件中的矩形。

Gtk.Popover:position

如何放置弹出菜单,相对于其 父级。

GtkWidget(34) 继承的属性
Gtk.Widget:can-focus

小组件或其任何子项是否可以接受输入 焦点。

Gtk.Widget:can-target

小组件是否可以接收指针 事件。

Gtk.Widget:css-classes

应用于此 小组件的 CSS 类别列表。

Gtk.Widget:css-name

此小组件在 CSS 树中的名称。

Gtk.Widget:cursor

widget 使用的 光标。

Gtk.Widget:focus-on-click

使用鼠标单击小组件时,小组件是否应获取焦点。

Gtk.Widget:focusable

此小组件本身是否将接受输入 焦点。

Gtk.Widget:halign

如果小组件获取了额外的空间,如何分配水平空间。

Gtk.Widget:has-default

小组件是否是默认 小组件。

Gtk.Widget:has-focus

小组件是否具有输入 焦点。

Gtk.Widget:has-tooltip

启用或禁用 widgetGtkWidget:query-tooltip 信号的发射。

Gtk.Widget:height-request

小组件高度请求的覆盖 。

Gtk.Widget:hexpand

是否水平 扩展。

Gtk.Widget:hexpand-set

是否使用 hexpand 属性。

Gtk.Widget:layout-manager

用于计算小组件的首选大小并分配其子项的 GtkLayoutManager 实例。

Gtk.Widget:margin-bottom

小组件底部边缘的保证金。

Gtk.Widget:margin-end

小组件末尾的保证金,水平方向。

Gtk.Widget:margin-start

小组件开头的保证金,水平方向。

Gtk.Widget:margin-top

小组件顶部边缘的保证金。

Gtk.Widget:name

 小组件的名称。

Gtk.Widget:opacity

小组件的请求不透明度。

Gtk.Widget:overflow

如何处理小部件内容区域外部的内容。

Gtk.Widget:parent

此小部件的父小部件。

Gtk.Widget:receives-default

当获得焦点时,小部件是否将接收默认操作。

Gtk.Widget:root

包含此小部件的小部件树的GtkRoot 小部件。

Gtk.Widget:scale-factor

小部件的缩放因子。

Gtk.Widget:sensitive

小部件是否响应输入。

Gtk.Widget:tooltip-markup

将工具提示文本设置为给定的字符串,并使用 Pango 标记进行标记。

Gtk.Widget:tooltip-text

将工具提示文本设置为给定的字符串。

Gtk.Widget:valign

如果小部件获得额外的空间,如何分配垂直空间。

Gtk.Widget:vexpand

是否垂直展开。

Gtk.Widget:vexpand-set

是否使用vexpand 属性。

Gtk.Widget:visible

小部件是否可见。

Gtk.Widget:width-request

覆盖小部件的宽度请求。

GtkAccessible (1) 继承的属性
GtkAccessible:accessible-role

给定 GtkAccessible 实现的可访问角色。

信号

GtkPopover (2) 继承的信号
GtkPopover::activate-default

当用户激活默认小部件时发出。

GtkPopover::closed

当弹出窗口关闭时发出。

GtkWidget (13) 继承的信号
GtkWidget::destroy

发出信号,表明小部件引用保持者应释放他们持有的引用。

GtkWidget::direction-changed

当小部件的文本方向发生改变时发出。

GtkWidget::hide

当隐藏widget 时发出。

GtkWidget::keynav-failed

如果键盘导航失败,则发出。

GtkWidget::map

当要映射widget 时发出。

GtkWidget::mnemonic-activate

通过助记符激活小部件时发出。

GtkWidget::move-focus

当焦点被移动时发出。

GtkWidget::query-tooltip

当小部件的工具提示即将显示时发出。

GtkWidget::realize

当将widgetGdkSurface 关联时发出。

GtkWidget::show

当显示widget 时发出。

GtkWidget::state-flags-changed

当小部件状态发生改变时发出。

GtkWidget::unmap

当要取消映射widget 时发出。

GtkWidget::unrealize

当与 widget 关联的 GdkSurface 被销毁时发出。

GObject (1) 继承的信号
GObject::notify

当对象的属性通过 g_object_set_property()、g_object_set() 等设置其值时,将在对象上发出 notify 信号。