GtkListBox

描述 [src]

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

GtkListBox 是垂直列表。

GtkListBox 仅包含 GtkListBoxRow 子级。这些行能够动态排序和筛选,还可以根据行内容动态添加标题。它还允许像典型的列表一样进行键盘和鼠标导航与选择。

使用 GtkListBox 通常是 GtkTreeView 的替代方案,特别是在列表内容具有比 GtkCellRenderer 允许的更复杂的布局时,或者当内容具有交互性(即其中具有按钮)时。

尽管 GtkListBox 必须仅具有 GtkListBoxRow 子级,但是你可以通过 gtk_list_box_prepend()gtk_list_box_append()gtk_list_box_insert() 向其中添加任何种类的控件,并且列表与控件之间会自动插入一个 GtkListBoxRow 控件。

GtkListBoxRows 能标记为可激活或可选择。如果某行可激活,则用户尝试激活它时将为此行触发 GtkListBox::row-activated。如果某行可选择,则用户尝试选择它时将把该行标记为已选择。

GtkListBox 作为 GtkBuildable

GtkListBox 实现的 GtkBuildable 接口支持将子元素设置为占位符,方法是将 <child> 元素的 “type” 属性指定为 “placeholder”。有关信息,请参见 gtk_list_box_set_placeholder()

快捷键和手势

以下信号具有默认快捷键绑定

CSS 节点

list[.separators][.rich-list][.navigation-sidebar][.boxed-list]
╰── row[.activatable]

GtkListBox 使用名为 list 的单个 CSS 节点。当设置 GtkListBox:show-separators 属性时,它可能带有 .separators 样式类。每个 GtkListBoxRow 使用名为 row 的单个 CSS 节点。在适当的时候,行节点会添加 .activatable 样式类。

它也可能带有 .boxed-list 样式类。在这种情况下,列表会自动且框架包围,并带有分隔符。

主列表节点也可能会带有样式类来选择 列表显示 的样式:.rich-list、.navigation-sidebar 或 .data-table。

辅助功能

GtkListBox 使用 GTK_ACCESSIBLE_ROLE_LIST 角色,GtkListBoxRow 使用 GTK_ACCESSIBLE_ROLE_LIST_ITEM 角色。

层次结构

hierarchy this GtkListBox 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_list_box_new

创建新的 GtkListBox 容器。

实例方法

gtk_list_box_append

向列表追加一个小控件。

gtk_list_box_bind_model

model 绑定到 box

gtk_list_box_drag_highlight_row

为某行添加拖动高亮。

gtk_list_box_drag_unhighlight_row

如果某行以前已通过 gtk_list_box_drag_highlight_row() 进行高亮,则会将其高亮取消。

gtk_list_box_get_activate_on_single_click

返回行是否在单次点击时激活。

gtk_list_box_get_adjustment

获取小控件用于垂直滚动的调整器(如果有)。

gtk_list_box_get_row_at_index

获取列表中的第 n 个子元素(不计标头)。

gtk_list_box_get_row_at_y

获取 y 位置的行。

gtk_list_box_get_selected_row

获取选定行,如果没有选定行,则获取 NULL

gtk_list_box_get_selected_rows

创建所有选定子元素的列表。

gtk_list_box_get_selection_mode

获取列表框的选择模式。

gtk_list_box_get_show_separators

返回列表框是否应该在行之间显示分隔符。

gtk_list_box_get_tab_behavior

返回 TabShift+Tab 键的行为。

不稳定 自版本:4.18 起

gtk_list_box_insert

child 插入 box 中的 position 位置。

gtk_list_box_invalidate_filter

更新所有行的筛选。

gtk_list_box_invalidate_headers

更新所有行的分隔符。

gtk_list_box_invalidate_sort

更新所有行的排序。

gtk_list_box_prepend

在列表中添加一个小控件。

gtk_list_box_remove

box 中移除子项。

gtk_list_box_remove_all

box 中移除所有行。

起始于:4.12

gtk_list_box_select_all

选择 box 的所有子项,如果选择模式允许。

gtk_list_box_select_row

row 设为当前选中的行。

gtk_list_box_selected_foreach

针对每个选定的子项调用一个函数。

gtk_list_box_set_activate_on_single_click

如果 singleTRUE,则单击行时会激活行,否则需要双击。

gtk_list_box_set_adjustment

设置小部件用于垂直滚动的调整(如果有)。

gtk_list_box_set_filter_func

通过设置 box 上的筛选器功能,可以动态确定要显示的行。

gtk_list_box_set_header_func

设置头部功能。

gtk_list_box_set_placeholder

设置在列表不显示任何可见子项时列表中显示的占位符小部件。

gtk_list_box_set_selection_mode

设置列表框中的选择方式。

gtk_list_box_set_show_separators

设置列表框是否在行之间显示分隔符。

gtk_list_box_set_sort_func

设置排序功能。

gtk_list_box_set_tab_behavior

设置 TabShift+Tab 键的行为。

不稳定 自版本:4.18 起

gtk_list_box_unselect_all

取消选择 box 的所有子项,如果选择模式允许。

gtk_list_box_unselect_row

取消选择 box 的单个行,如果选择模式允许。

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.ListBox:accept-unpaired-release

是否接受未配对的释放事件。

Gtk.ListBox:activate-on-single-click

确定是否可以通过单击激活子项,或者是否需要双击。

Gtk.ListBox:selection-mode

列表框使用的选择模式。

Gtk.ListBox:show-separators

是否显示行之间的分隔符。

Gtk.ListBox:tab-behavior

Tab 键的行为。

不稳定 使用于:4.18

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.ListBox::activate-cursor-row

在激活游标行时发出。

Gtk.ListBox::move-cursor

当用户启动光标移动时发出。

Gtk.ListBox::row-activated

当用户激活某行时发出。

Gtk.ListBox::row-selected

当新行被选择时发出,或者(使用 NULL row)当选择被清除时发出。

Gtk.ListBox::select-all

如果选择模式允许的话,会发出选择此框的所有子类的请求。

Gtk.ListBox::selected-rows-changed

当所选行的集合发生变化时发出。

Gtk.ListBox::toggle-cursor-row

当光标行被切换时发出。

Gtk.ListBox::unselect-all

如果选择模式允许,则此框的所有子类均取消选择。

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