GtkListView

描述 [src]

final class Gtk.ListView : Gtk.ListBase
  implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Orientable, Gtk.Scrollable {
  /* No available fields */
}

GtkListView 展示一个动态的、项数多的列表。

GtkListView 使用其工厂为每个可见项生成一个行小组件,并以线性展示方式展示它们,无论是垂直还是水平展示。

GtkListView:show-separators 属性提供了一种简单的方式,可以在行之间展示分隔符。

GtkListView 允许用户根据模型的选择特性选择项。对于允许多项选择的模型,可以使用 GtkListView:enable-rubberband 打开“橡皮筋选择”。

如果你需要带标题的多栏,请参阅 GtkColumnView

要了解有关列表小组件框架的更多信息,请参阅 概述

使用 GtkListView 的示例

static void
setup_listitem_cb (GtkListItemFactory *factory,
                   GtkListItem        *list_item)
{
  GtkWidget *image;

  image = gtk_image_new ();
  gtk_image_set_icon_size (GTK_IMAGE (image), GTK_ICON_SIZE_LARGE);
  gtk_list_item_set_child (list_item, image);
}

static void
bind_listitem_cb (GtkListItemFactory *factory,
                  GtkListItem        *list_item)
{
  GtkWidget *image;
  GAppInfo *app_info;

  image = gtk_list_item_get_child (list_item);
  app_info = gtk_list_item_get_item (list_item);
  gtk_image_set_from_gicon (GTK_IMAGE (image), g_app_info_get_icon (app_info));
}

static void
activate_cb (GtkListView  *list,
             guint         position,
             gpointer      unused)
{
  GAppInfo *app_info;

  app_info = g_list_model_get_item (G_LIST_MODEL (gtk_list_view_get_model (list)), position);
  g_app_info_launch (app_info, NULL, NULL, NULL);
  g_object_unref (app_info);
}

...

  model = create_application_list ();

  factory = gtk_signal_list_item_factory_new ();
  g_signal_connect (factory, "setup", G_CALLBACK (setup_listitem_cb), NULL);
  g_signal_connect (factory, "bind", G_CALLBACK (bind_listitem_cb), NULL);

  list = gtk_list_view_new (GTK_SELECTION_MODEL (gtk_single_selection_new (model)), factory);

  g_signal_connect (list, "activate", G_CALLBACK (activate_cb), NULL);

  gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (sw), list);

动作

GtkListView 定义了一组内置动作

CSS 节点

listview[.separators][.rich-list][.navigation-sidebar][.data-table]
├── row[.activatable]
│
├── row[.activatable]
│
┊
╰── [rubberband]

GtkListView 使用一个名叫 listview 的单个 CSS 节点。当设置 GtkListView:show-separators 属性时,它可能带有 .separators 样式类。每个子小组件使用一个名叫 row 的单个 CSS 节点。如果设置 GtkListItem:activatable 属性,则相应的行将具有 .activatable 样式类。对于橡皮筋选择,将使用带有名称 rubberband 的节点。

主列表视图节点还可以携带样式类以选择列表显示样式:.rich-list、.navigation-sidebar 或 .data-table。

辅助功能

GtkListView 使用 GTK_ACCESSIBLE_ROLE_LIST 角色,并且列表项使用 GTK_ACCESSIBLE_ROLE_LIST_ITEM 角色。

层次结构

hierarchy this GtkListView implements_0 GtkAccessible this--implements_0 implements_1 GtkBuildable this--implements_1 implements_2 GtkConstraintTarget this--implements_2 implements_3 GtkOrientable this--implements_3 implements_4 GtkScrollable this--implements_4 ancestor_0 GtkListBase ancestor_0--this ancestor_1 GtkWidget ancestor_1--ancestor_0 ancestor_2 GInitiallyUnowned ancestor_2--ancestor_1 ancestor_3 GObject ancestor_3--ancestor_2

构造函数

gtk_list_view_new

创建新的 GtkListView,它使用给定的 factory 来将项目映射到小组件。

实例方法

gtk_list_view_get_enable_rubberband

返回是否可以通过用鼠标拖动来选择行。

gtk_list_view_get_factory

获取当前用于填充列表项的工厂。

gtk_list_view_get_header_factory

获取当前用于填充章节标题的工厂。

自:4.12

gtk_list_view_get_model

获取当前用于读取显示的项目的模型。

gtk_list_view_get_show_separators

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

gtk_list_view_get_single_click_activate

返回是否在单击时激活行并在悬停时选择行。

gtk_list_view_get_tab_behavior

获取为Tab键设置的行为。

自:4.12

gtk_list_view_scroll_to

滚动到指定位置处的项目并执行 flags 中指定的操作。

自:4.12

gtk_list_view_set_enable_rubberband

设置是否可以通过用鼠标拖动来更改选择。

gtk_list_view_set_factory

设置要用于填充列表项的 GtkListItemFactory

gtk_list_view_set_header_factory

设置要用于填充章节标题中使用的 GtkListHeader 对象的 GtkListItemFactory

自:4.12

gtk_list_view_set_model

设置要使用的模型。

gtk_list_view_set_show_separators

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

gtk_list_view_set_single_click_activate

设置是否应在单击时激活行并在悬停时选择行。

gtk_list_view_set_tab_behavior

设置TabShift+Tab键的行为。

自:4.12

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

GtkOrientable (2)继承的方法
gtk_orientable_get_orientation

检索 orientable 的方向。

gtk_orientable_set_orientation

设置 orientable 的方向。

GtkScrollable (9)继承的方法
gtk_scrollable_get_border

返回可滚动区域外部的非滚动边框的大小。

gtk_scrollable_get_hadjustment

检索用于水平滚动的 GtkAdjustment

gtk_scrollable_get_hscroll_policy

获取水平 GtkScrollablePolicy

gtk_scrollable_get_vadjustment

检索用于垂直滚动的 GtkAdjustment

gtk_scrollable_get_vscroll_policy

获取垂直 GtkScrollablePolicy

gtk_scrollable_set_hadjustment

设置 GtkScrollable 的水平调整。

gtk_scrollable_set_hscroll_policy

设置 GtkScrollablePolicy

gtk_scrollable_set_vadjustment

设置 GtkScrollable 的垂直调整。

gtk_scrollable_set_vscroll_policy

设置 GtkScrollablePolicy

属性

Gtk.ListView:enable-rubberband

允许橡皮筋选择。

Gtk.ListView:factory

用于填充列表项的工厂。

Gtk.ListView:header-factory

用于创建标题小部件的工厂。

自:4.12

Gtk.ListView:model

要显示的项目的模型。

Gtk.ListView:show-separators

在行之间显示分隔符。

Gtk.ListView:single-click-activate

单击激活行并在悬停时对其进行选择。

Gtk.ListView:tab-behavior

Tab 键的行为。

自:4.12

GtkListBase (1)继承的属性
Gtk.ListBase:orientation

列表的方向。有关详情,请参阅 GtkOrientable:orientation。

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

GtkOrientable(1)继承的属性
GtkOrientable:orientation

可定向控件的方向。

GtkScrollable(4)继承的属性
GtkScrollable:hadjustment

可滚动控件的水平 `GtkAdjustment`。

GtkScrollable:hscroll-policy

确定何时应开始水平滚动。

GtkScrollable:vadjustment

可滚动控件的垂直 `GtkAdjustment`。

GtkScrollable:vscroll-policy

确定何时应开始垂直滚动。

信号

Gtk.ListView::activate

通常是通过激活 GtkListView|list.activate-item 操作,当用户激活一行时触发。

GtkWidget(13)继承的信号
GtkWidget::destroy

发出信号,表示所有持有控件引用的人都应释放他们持有的引用。

GtkWidget::direction-changed

控件的文本方向更改时发出信号。

GtkWidget::hide

控件隐藏时发出信号。

GtkWidget::keynav-failed

如果键盘导航失败,则发出信号。

GtkWidget::map

控件即将映射时发出信号。

GtkWidget::mnemonic-activate

通过助记符激活控件时发出信号。

GtkWidget::move-focus

焦点移动时发出信号。

GtkWidget::query-tooltip

控件的工具提示即将显示时发出信号。

GtkWidget::realize

将 `widget` 与 `GdkSurface` 关联时发出信号。

GtkWidget::show

控件显示时发出信号。

GtkWidget::state-flags-changed

控件状态更改时发出信号。

GtkWidget::unmap

控件即将取消映射时发出信号。

GtkWidget::unrealize

如果与 widget 关联的 GdkSurface 被销毁,则会发出此信号。

GObject (1) 继承的信号
GObject::notify

当对象的某个属性的值通过 g_object_set_property()、g_object_set() 等设置后,将会在对象上发出 notify 信号。

类结构

struct GtkListViewClass {
  /* no available fields */
}

暂无描述。