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 - GTK 文档 this - GTK 文档 GtkPopover implements_0 - GTK 文档 GtkAccessible this--implements_0 - GTK 文档 implements_1 - GTK 文档 GtkBuildable this--implements_1 - GTK 文档 implements_2 - GTK 文档 GtkConstraintTarget this--implements_2 - GTK 文档 implements_3 - GTK 文档 GtkNative this--implements_3 - GTK 文档 implements_4 - GTK 文档 GtkShortcutManager this--implements_4 - GTK 文档 ancestor_0 - GTK 文档 GtkWidget ancestor_0--this - GTK 文档 ancestor_1 - GTK 文档 GInitiallyUnowned ancestor_1--ancestor_0 - GTK 文档 ancestor_2 - GTK 文档 GObject ancestor_2--ancestor_1 - GTK 文档
[]

构造函数

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)继承的方法
GObject(43)继承的方法
GtkAccessible(19)继承的方法
GtkBuildable(1)继承的方法
GtkNative(5)继承的方法
[]

属性

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)继承的属性
GtkAccessible继承的属性 (1)
[]

信号

Gtk.Popover::activate-default

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

Gtk.Popover::closed

当弹出窗口关闭时发出。

GtkWidget继承的信号 (13)
GObject(1)继承的信号

class 结构

[]

虚拟方法

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

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