类
GtkPopover
描述 [src]
class Gtk.Popover : Gtk.Widget
implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.ShortcutManager {
/* No available fields */
}
GtkPopover
是类似气泡状的上下文弹出菜单。
它主要用来提供依赖于上下文的有关信息或选项。弹出菜单依附到父窗口小部件。默认情况下,它们指向整个窗口小部件区域,但此行为可以用 gtk_popover_set_pointing_to()
来更改。
弹出菜单相对于依附其上的窗口小部件的位置也可以用 gtk_popover_set_position()
来更改
默认情况下,GtkPopover
会执行抢占,以确保在显示时输入事件被重定向到它,并且弹出菜单在预期的情况下也会被关闭(点击弹出菜单外部或按 Escape 键)。如果在弹出菜单上不需要这种模态行为,则可以在其上调用 gtk_popover_set_autohide()
以调整其行为。
GtkPopover 替代菜单
GtkPopover
经常用来替代菜单。执行此操作的最佳方法是使用 GtkPopoverMenu
子类,该子类支持使用 gtk_popover_menu_new_from_model()
从 GMenuModel
填充
<section>
<attribute name="display-hint">horizontal-buttons</attribute>
<item>
<attribute name="label">Cut</attribute>
<attribute name="action">app.cut</attribute>
<attribute name="verb-icon">edit-cut-symbolic</attribute>
</item>
<item>
<attribute name="label">Copy</attribute>
<attribute name="action">app.copy</attribute>
<attribute name="verb-icon">edit-copy-symbolic</attribute>
</item>
<item>
<attribute name="label">Paste</attribute>
<attribute name="action">app.paste</attribute>
<attribute name="verb-icon">edit-paste-symbolic</attribute>
</item>
</section>
快捷方式和手势
GtkPopover
支持以下键盘快捷方式
- Escape 关闭弹出菜单。
- Alt 使助记符可见。
以下信号具有默认键盘绑定
CSS 节点
popover.background[.menu]
├── arrow
╰── contents
╰── <child>
GtkPopover
有一个主节点名为 popover
,一个名为 arrow
的箭头,以及一个用于内容的另一个节点,名为 contents
。popover
节点始终获得 .background
样式类。如果该弹出窗口类似菜单,它还将获得 .menu
样式类,例如是 GtkPopoverMenu
。
GtkPopover
的特定用法,例如 GtkEntry
或 GtkTextView
中的触控选择弹出窗口或放大镜,获得诸如 .touch-selection
或 .magnifier
之类的样式类以区别于简单的弹出窗口。
在直接设置弹出窗口样式时,通常不应该对 popover
节点设置任何背景。弹出窗口的可见部分可以有阴影。要在 CSS 中指定它,请设置 contents
节点的盒阴影。
注意,为了实现合适的箭头可视效果,GtkPopover
对 arrow
节点使用了自定义绘制。这使得箭头可以动态地改变其形状,但这也限制了使用 CSS 设置其样式的可能性。特别是,arrow
会在 content
节点的边框和阴影上绘制,因此它们看起来像一个形状,这意味着 content
节点和 arrow
节点的边框宽度应相同。箭头也不支持除实线以外的任何边框形状,没有边框半径,只有一个边框宽度(使用了 border-bottom-width)和无盒阴影。
实例方法
从 GtkAccessible(19)继承的方法
gtk_accessible_announce
请求用户的屏幕阅读器播报给定的消息。
版本:4.14
gtk_accessible_get_accessible_parent
检索无障碍对象的无障碍父对象。
版本:4.10
gtk_accessible_get_accessible_role
检索无障碍对象的无障碍角色。
gtk_accessible_get_at_context
检索给定无障碍对象的实现。
版本:4.10
gtk_accessible_get_bounds
查询此无障碍的坐标和尺寸。
版本:4.10
gtk_accessible_get_first_accessible_child
检索无障碍对象的第一个无障碍子对象。
版本:4.10
gtk_accessible_get_next_accessible_sibling
检索无障碍对象的下一个无障碍同级对象。
版本:4.10
gtk_accessible_get_platform_state
查询平台状态,例如焦点。
版本:4.10
gtk_accessible_reset_property
将无障碍属性重置为其默认值。
gtk_accessible_reset_relation
将无障碍关系重置为其默认值。
gtk_accessible_reset_state
将无障碍状态重置为其默认值。
gtk_accessible_set_accessible_parent
设置无障碍对象的父对象和同级对象。
版本:4.10
gtk_accessible_update_next_accessible_sibling
更新下一个无障碍同级对象。
版本: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
。
属性
从 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
对小组件上的`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)
信号
从GtkWidget继承的信号 (13)
GtkWidget::destroy
表示小组件的引用所有持有者都应该释放他们持有的引用。
GtkWidget::direction-changed
当小组件的文本方向发生更改时发出。
GtkWidget::hide
当小组件被隐藏时发出。
GtkWidget::keynav-failed
如果键盘导航失败,则发出。
GtkWidget::map
当小组件将被映射时发出。
GtkWidget::mnemonic-activate
当小组件通过辅助键激活时发出。
GtkWidget::move-focus
当焦点被移动时发出。
GtkWidget::query-tooltip
当小组件的工具提示即将显示时发出。
GtkWidget::realize
当小组件与`GdkSurface`关联时发出。
GtkWidget::show
当小组件显示时发出。
GtkWidget::state-flags-changed
当小组件状态发生变化时发出。
GtkWidget::unmap
在 widget
即将取消映射时发出。
GtkWidget::unrealize
在与 widget
关联的 GdkSurface
被销毁时发出。
从 GObject(1)继承的信号
GObject::notify
在通过 g_object_set_property()、g_object_set() 等设置某个属性的值后,会在对象上发出 notify 信号。
class 结构
struct GtkPopoverClass {
GtkWidgetClass parent_class;
void (* closed) (
GtkPopover* popover
);
void (* activate_default) (
GtkPopover* popover
);
}
提供没有说明。
class 成员
parent_class: GtkWidgetClass
提供没有说明。
closed: void (* closed) ( GtkPopover* popover )
提供没有说明。
activate_default: void (* activate_default) ( GtkPopover* popover )
提供没有说明。