GtkExpander

描述 [源代码]

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

GtkExpander 允许用户通过点击展开三角来显示其子项。

An example GtkExpander

这与 GtkTreeView 中使用的三角类似。

通常,您使用扩展器的方式与使用框架的方式类似;您创建子窗口小部件,并使用 gtk_expander_set_child() 将其添加到扩展器。当切换展开器时,它将自动显示和隐藏子项。

特殊用法

在某些情况下,您可能希望自己显示和隐藏展开的小部件,例如当您想在展开时实际创建小部件时。在这种情况下,创建一个 GtkExpander,但不要向其中添加子项。展开小部件有一个 GtkExpander:expanded 属性,可用于监控其展开状态。您应该使用信号连接来监视此属性,如下所示

static void
expander_callback (GObject    *object,
                   GParamSpec *param_spec,
                   gpointer    user_data)
{
  GtkExpander *expander;

  expander = GTK_EXPANDER (object);

  if (gtk_expander_get_expanded (expander))
    {
      // Show or create widgets
    }
  else
    {
      // Hide or destroy widgets
    }
}

static void
create_expander (void)
{
  GtkWidget *expander = gtk_expander_new_with_mnemonic ("_More Options");
  g_signal_connect (expander, "notify::expanded",
                    G_CALLBACK (expander_callback), NULL);

  // ...
}

GtkExpander 作为 GtkBuildable

GtkExpander 实现的 GtkBuildable 接口支持通过将 child 指定为 <child> 元素的 type 属性,将子元素放在标签位置。可以不指定 <child> type 属性指定常规内容子元素。

带有 GtkExpander 的 用户界面 定义片段示例

<object class="GtkExpander">
  <child type="label">
    <object class="GtkLabel" id="expander-label"/>
  </child>
  <child>
    <object class="GtkEntry" id="expander-content"/>
  </child>
</object>

CSS 节点

expander-widget
╰── box
    ├── title
    │   ├── expander
    │   ╰── <label widget>
    ╰── <child>

GtkExpander 有一个主节点 expander-widget,以及包含标题和子小部件的子节点 boxbox 子节点 title 包含节点 expander,即展开/折叠箭头;然后是标签小部件(如果存在)。显示其子项的展开器的箭头具有对其设置 :checked 伪类的功能。

辅助功能

GtkExpander 使用 GTK_ACCESSIBLE_ROLE_BUTTON 角色。

层次结构

hierarchy this GtkExpander 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_expander_new

使用 label 作为标签文本创建一个新的展开器。

gtk_expander_new_with_mnemonic

使用 label 作为标签文本创建一个新的展开器。

实例方法

gtk_expander_get_child

获取 expander 的子小部件。

gtk_expander_get_expanded

查询 GtkExpander 并返回其当前状态。

gtk_expander_get_label

从标签控件中提取文本。

gtk_expander_get_label_widget

检索框架的标签控件。

gtk_expander_get_resize_toplevel

返回在调整大小和折叠时,扩展器是否将调整包含扩展器的顶级控件的大小。

gtk_expander_get_use_markup

返回标签的文本是否解释为 Pango 标记。

gtk_expander_get_use_underline

返回文本中的下划线是否表示快捷键。

gtk_expander_set_child

设置 expander 的子控件。

gtk_expander_set_expanded

设置扩展器的状态。

gtk_expander_set_label

将扩展器标签的文本设置为 label

gtk_expander_set_label_widget

设置扩展器的标签控件。

gtk_expander_set_resize_toplevel

设置在调整大小和折叠时,扩展器是否将调整包含扩展器的顶级控件的大小。

gtk_expander_set_use_markup

设置标签的文本是否包含 Pango 标记。

gtk_expander_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.Expander:child

子控件。

Gtk.Expander:expanded

是否打开扩展器以显示子控件。

Gtk.Expander:label

展开器标签的文本。

Gtk.Expander:label-widget

一个控件,用于代替通常的扩展器标签。

Gtk.Expander:resize-toplevel

此属性为 TRUE 时,展开扩展器时将调整包含扩展器的顶级小组件大小,并且收缩时进行折叠。

Gtk.Expander:use-markup

标签中的文本是否为 Pango 标记。

Gtk.Expander: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

启用或禁用在 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)的属性
GtkAccessible:accessible-role

给定的 GtkAccessible 实现的辅助角色。

信号

Gtk.Expander::activate

激活 GtkExpander

继承自 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信号。