GtkMenuButton

描述 [src]

final class Gtk.MenuButton : Gtk.Widget
  implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
  /* No available fields */
}

当点击时,GtkMenuButton 小工具用于显示一个弹出式窗口。

An example GtkMenuButton

该弹出式窗口可作为 GtkPopover 或抽象的 GMenuModel 提供。

GtkMenuButton 小工具可以显示图标(使用 GtkMenuButton:icon-name 属性设置)或标签(使用 GtkMenuButton:label 属性设置)。如果都没有明确设置,则会自动创建一个 GtkImage,使用根据 GtkMenuButton:direction 定向的箭头图像或未设置方向时的常规“open-menu-symbolic”图标。

弹出式窗口的位置由菜单按钮的 GtkMenuButton:direction 属性确定。

对于菜单,菜单的 GtkWidget:halignGtkWidget:valign 属性也已考虑在内。例如,当方向为 GTK_ARROW_DOWN 且水平对齐为 GTK_ALIGN_START 时,菜单会显示在按钮下方,且菜单的起始边缘(取决于文本方向)与按钮的起始边缘对齐。如果在按钮下方没有足够的空间,则菜单会弹出在按钮上方。如果对齐方式会使菜单部分内容移出屏幕之外,则会将菜单“推入”。

start center end
down
up
left
right

CSS 节点

menubutton
╰── button.toggle
    ╰── <content>
         ╰── [arrow]

GtkMenuButton 有一个名称为 menubutton 的单个 CSS 节点,其中包含带有 .toggle 样式类的 button 节点。

如果按钮包含一个图标,它将会有 .image-button 样式类,如果它包含文本,它将会有 .text-button 样式类。除了图标之外,如果箭头、文本或自定义子项也是可见的,它还将带有 .arrow-button 样式类。

在切换按钮内容中,有一个用于指示的 arrow 节点,它将携带 .none.up.down.left.right 样式类之一,以指示菜单将出现在哪个方向。 CSS 预计将为每种情况提供一个合适的图像,使用 -gtk-icon-source 属性。

可以选择,menubutton 节点可以携带 .circular 样式类来请求一个圆形的外观。

无障碍

GtkMenuButton 使用 GTK_ACCESSIBLE_ROLE_BUTTON 角色。

层级

hierarchy this GtkMenuButton implements_0 GtkAccessible this--implements_0 implements_1 GtkBuildable this--implements_1 implements_2 GtkConstraintTarget this--implements_2 ancestor_0 GtkWidget ancestor_0--this ancestor_1 GInitiallyUnowned ancestor_1--ancestor_0 ancestor_2 GObject ancestor_2--ancestor_1

构造函数

gtk_menu_button_new

创建一个 GtkMenuButton 小组件,具有指向下的箭头,作为唯一的子项。

实例方法

gtk_menu_button_get_active

返回菜单按钮是否是活动的。

自:4.10

gtk_menu_button_get_always_show_arrow

获取是否在使用图标或自定义子项时显示下拉箭头。

自:4.4

gtk_menu_button_get_can_shrink

获取按钮是否可以小到比其内容的自然大小。

自:4.12

gtk_menu_button_get_child

获取 menu_button 的子小组件。

自:4.6

gtk_menu_button_get_direction

返回弹出时弹出窗口指向的方向。

gtk_menu_button_get_has_frame

返回按钮是否具有框架。

gtk_menu_button_get_icon_name

获取在按钮中显示的图标的名称。

gtk_menu_button_get_label

获取在按钮中显示的标签。

gtk_menu_button_get_menu_model

返回用于生成弹出窗口的 GMenuModel

gtk_menu_button_get_popover

返回从按钮中弹出 GtkPopover

gtk_menu_button_get_primary

返回按钮是否作为主菜单。

自:4.4

gtk_menu_button_get_use_underline

返回文本中的嵌入下划线是否表示助记符。

gtk_menu_button_popdown

关闭菜单。

gtk_menu_button_popup

弹出菜单。

gtk_menu_button_set_active

设置菜单按钮是否是活动的。

自:4.10

gtk_menu_button_set_always_show_arrow

设置是否在使用图标或自定义子项时显示下拉箭头。

自:4.4

gtk_menu_button_set_can_shrink

设置按钮大小是否可以比其内容的自然大小还小。

自:4.12

gtk_menu_button_set_child

设置 menu_button 的子小组件。

自:4.6

gtk_menu_button_set_create_popup_func

设置弹出窗口即将显示时调用的 func

gtk_menu_button_set_direction

设置弹出窗口将弹出的方向。

gtk_menu_button_set_has_frame

设置按钮的样式。

gtk_menu_button_set_icon_name

设置要在菜单按钮中显示的图标的名称。

gtk_menu_button_set_label

设置要在菜单按钮中显示的标签。

gtk_menu_button_set_menu_model

设置将从中构建弹出窗口的 GMenuModel

gtk_menu_button_set_popover

设置当单击 menu_button 时将弹出的 GtkPopover

gtk_menu_button_set_primary

设置按钮是否作为主菜单。

自:4.4

gtk_menu_button_set_use_underline

如果为真,则文本中的下划线表示助记符。

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

属性

Gtk.MenuButton:active

菜单按钮是否处于活动状态。

自:4.10

Gtk.MenuButton:always-show-arrow

是否在使用图标或自定义子对象时显示下拉箭头。

自:4.4

Gtk.MenuButton:can-shrink

按钮的尺寸是否比其内容的自然尺寸小。

自:4.12

Gtk.MenuButton:child

子小部件。

自:4.6

Gtk.MenuButton:direction

表示菜单或弹出框弹出的方向的 GtkArrowType

Gtk.MenuButton:has-frame

按钮是否有框架。

Gtk.MenuButton:icon-name

自动填充按钮的图标的名称。

Gtk.MenuButton:label

按钮的标签。

Gtk.MenuButton:menu-model

弹出窗口将从中创建的 GMenuModel

Gtk.MenuButton:popover

在单击按钮时弹出的 GtkPopover

Gtk.MenuButton:primary

菜单按钮是否作为主菜单。

自:4.4

Gtk.MenuButton:use-underline

如果设置,文本中的下划线表示助记符。

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 实现的可访问角色。

信号

Gtk.MenuButton::activate

在菜单按钮被激活时发出。

自:4.4

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信号。