类
GtkListItemFactory
说明 [源代码]
final class Gtk.ListItemFactory : GObject.Object
{
/* No available fields */
}
一个 GtkListItemFactory
为从 GListModel
中获取的项目创建微件。
这是处理列表微件(例如 GtkListView
或 GtkGridView
)的核心概念之一。
GtkListItemFactory
的任务是在视图需要时为从模型中获取的项目创建微件,并在视图显示的项目发生变化后更新它们。
一个视图通常只有在视图上同时设置了 factory 和 model 以后才能显示任何内容。因此,在设置第一个视图时不要跳过此步骤非常重要。
由于视图并非一次显示整个列表,而仅仅显示一些项目,因此它们一次只维护一些微件。它们将指示 GtkListItemFactory
创建这些微件并将其绑定到当前显示的项目上。
当列表模型发生变化或用户滚动到列表时,项目将发生变化,视图将指示工厂将微件绑定到这些新项目上。
用于显示这些微件的实际微件由您提供。
当工厂需要创建微件时,它将创建一个 GtkListItem
并将其传递给你的代码,以便为此微件设置一个微件。此列表项目将提供各种属性,其中包含有关要显示的项目的的信息,并为你提供一些机会来配置其行为。有关更多详细信息,请参阅 GtkListItem
文档。
存在 GtkListItemFactory
的各种实现,允许你以不同的方式提供这些微件。最常见的实现是 GtkBuilderListItemFactory
,它使用 GtkBuilder
.ui 文件,然后从该文件中的信息自动创建微件并管理所有内容,而 GtkSignalListItemFactory
允许你使用自己的代码连接到信号并完全控制微件的设置和管理方式。
GtkListItemFactory
应该是最终的 — 这意味着其行为不应该发生变化,并且从其中创建的第一个微件应与从其中创建的最后一个微件具有相同的方式。如果你打算对行为进行更改,建议你创建一个新的 GtkListItemFactory
,这样视图将能够重新创建其微件。
一旦你选择了工厂并创建了它,你需要将它设置在你想要与之一起使用的视图微件上,例如通过 gtk_list_view_set_factory()
。允许在不同视图之间复用工厂,但这并不常见。
信号
从 GObject (1) 继承的信号
GObject::notify
当对象的一个属性通过 g_object_set_property()、g_object_set() 等方式设置了其值时,便会发出 notify 信号。