类
GtkPopoverMenu
描述 [源代码]
final class Gtk.PopoverMenu : Gtk.Popover
implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.ShortcutManager {
/* No available fields */
}
GtkPopoverMenu
是 GtkPopover
的一个子类,用于实现菜单行为。
GtkPopoverMenu
将其子元素视为菜单并允许在它们之间进行切换。它可以将子菜单作为传统的嵌套子菜单打开,或者以更加触控友好的滑动形式打开。属性 GtkPopoverMenu:flags
控制此外观。
GtkPopoverMenu
主要用于菜单模型,使用 gtk_popover_menu_new_from_model()
。如果你需要将其他小部件(例如 GtkSpinButton
或 GtkSwitch
)放入弹出窗口中,则可以使用 gtk_popover_menu_add_child()
。
要获得更多对话框类似的行为,请使用纯 GtkPopover
。
菜单模型
GtkBuilder
为 GMenuModel
理解的 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_ITEM
、GTK_ACCESSIBLE_ROLE_MENU_ITEM_CHECKBOX
或 GTK_ACCESSIBLE_ROLE_MENU_ITEM_RADIO
角色。
实例方法
从 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` 出现的首选位置。
从 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) 继承的方法
从 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
。
属性
从 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
启用或禁用 widget
上 GtkWidget: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) 继承的属性
信号
从 GtkPopover (2) 继承的信号
从 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
当将widget
与 GdkSurface
关联时发出。
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 信号。