GtkPopover

描述 [src]

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

GtkPopover 是类似气泡状的上下文弹出菜单。

An example 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 的箭头,以及一个用于内容的另一个节点,名为 contentspopover 节点始终获得 .background 样式类。如果该弹出窗口类似菜单,它还将获得 .menu 样式类,例如是 GtkPopoverMenu

GtkPopover 的特定用法,例如 GtkEntryGtkTextView 中的触控选择弹出窗口或放大镜,获得诸如 .touch-selection.magnifier 之类的样式类以区别于简单的弹出窗口。

在直接设置弹出窗口样式时,通常不应该对 popover 节点设置任何背景。弹出窗口的可见部分可以有阴影。要在 CSS 中指定它,请设置 contents 节点的盒阴影。

注意,为了实现合适的箭头可视效果,GtkPopoverarrow 节点使用了自定义绘制。这使得箭头可以动态地改变其形状,但这也限制了使用 CSS 设置其样式的可能性。特别是,arrow 会在 content 节点的边框和阴影上绘制,因此它们看起来像一个形状,这意味着 content 节点和 arrow 节点的边框宽度应相同。箭头也不支持除实线以外的任何边框形状,没有边框半径,只有一个边框宽度(使用了 border-bottom-width)和无盒阴影。

层次结构

hierarchy this GtkPopover 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 GtkWidget ancestor_0--this ancestor_1 GInitiallyUnowned ancestor_1--ancestor_0 ancestor_2 GObject ancestor_2--ancestor_1

构造函数

gtk_popover_new

创建一个新的 GtkPopover

实例方法

gtk_popover_get_autohide

返回弹出窗口是否为模态。

gtk_popover_get_cascade_popdown

返回该弹出窗口在模态子级关闭后是否关闭。

gtk_popover_get_child

获取 popover 的子小部件。

gtk_popover_get_has_arrow

获取此弹出窗口是否显示箭头指向它相对于的窗口小部件。

gtk_popover_get_mnemonics_visible

获取助记符是否可见。

gtk_popover_get_offset

获取之前使用 [方法@Gtk.Popover.set_offset()] 设置的偏移量。

gtk_popover_get_pointing_to

获取弹出窗口指向的矩形。

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_popdownTRUE,则当子模态弹出窗口关闭时,该弹出窗口将关闭。

gtk_popover_set_child

设置 popover 的子窗口小部件。

gtk_popover_set_default_widget

设置 GtkPopover 的默认窗口小部件。

gtk_popover_set_has_arrow

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

gtk_popover_set_mnemonics_visible

设置助记符是否应可见。

gtk_popover_set_offset

在计算弹出窗口位置时设置要使用的偏移量。

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

检索无障碍对象的无障碍父对象。

版本: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)继承的方法
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.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

对小组件上的`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)
GtkAccessible:accessible-role

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

信号

Gtk.Popover::activate-default

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

Gtk.Popover::closed

当弹出窗口关闭时发出。

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 )

提供没有说明。

虚拟方法

Gtk.PopoverClass.activate_default
提供没有说明。

Gtk.PopoverClass.closed
提供没有说明。