类
GtkExpander
描述 [源代码]
final class Gtk.Expander : Gtk.Widget
implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
/* No available fields */
}
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
,以及包含标题和子小部件的子节点 box
。box
子节点 title
包含节点 expander
,即展开/折叠箭头;然后是标签小部件(如果存在)。显示其子项的展开器的箭头具有对其设置 :checked
伪类的功能。
辅助功能
GtkExpander
使用 GTK_ACCESSIBLE_ROLE_BUTTON
角色。
实例方法
从 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) 继承的方法
属性
继承自 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)的属性
信号
继承自 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
当widget
与GdkSurface
相关联时发出。
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信号。