GtkListView
GtkListView — Виджет для отображения списков
Функции
| GtkWidget * | gtk_list_view_new () |
| void | gtk_list_view_set_factory () |
| GtkListItemFactory * | gtk_list_view_get_factory () |
| void | gtk_list_view_set_model () |
| GtkSelectionModel * | gtk_list_view_get_model () |
| void | gtk_list_view_set_show_separators () |
| gboolean | gtk_list_view_get_show_separators () |
| void | gtk_list_view_set_single_click_activate () |
| gboolean | gtk_list_view_get_single_click_activate () |
| void | gtk_list_view_set_enable_rubberband () |
| gboolean | gtk_list_view_get_enable_rubberband () |
Свойства
| gboolean | enable-rubberband | Чтение / Запись |
| GtkListItemFactory * | factory | Чтение / Запись |
| GtkSelectionModel * | model | Чтение / Запись |
| gboolean | show-separators | Чтение / Запись |
| gboolean | single-click-activate | Чтение / Запись |
Сигналы
| void | activate | Выполнить последним |
Действия
| list.activate-item | u |
Типы и значения
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
╰── GtkListBase
╰── GtkListView
Реализованные интерфейсы
GtkListView реализует GtkAccessible, GtkBuildable, GtkConstraintTarget, GtkOrientable и GtkScrollable.
Файлы заголовков
#include <gtk/gtk.h>
Описание
GtkListView — это виджет для представления большого динамического списка элементов.
GtkListView использует свой фабричный метод для генерации одного виджета строки для каждого видимого элемента и отображает их в линейном представлении, вертикальном или горизонтальном. Свойство “show-separators” предоставляет простой способ отображения разделителей между строками.
GtkListView позволяет пользователю выбирать элементы в соответствии с характеристиками выбора модели. Для моделей, допускающих выбор нескольких элементов, можно включить _режим выбора с резиновой полосой_ с помощью свойства “enable-rubberband”.
Если вам нужны несколько столбцов с заголовками, см. GtkColumnView.
Для получения дополнительной информации о фреймворке виджетов списков, см. обзор.
Пример использования GtkListView:
CSS-узлы
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, если свойство “show-separators” установлено. Каждый дочерний виджет использует единственный CSS-узел с именем row. Для выбора с резиновой полосой используется узел с именем rubberband.
Основной узел listview также может содержать классы стилей для выбора стиля представления списков стилей списков: .rich-list, .navigation-sidebar или .data-table.
Удобство использования
GtkListView использует роль GTK_ACCESSIBLE_ROLE_LIST, а элементы списка используют роль GTK_ACCESSIBLE_ROLE_LIST_ITEM.
Функции
gtk_list_view_new ()
GtkWidget * gtk_list_view_new (GtkSelectionModel *model,GtkListItemFactory *factory);
Создает новый GtkListView, который использует заданный factory для сопоставления элементов с виджетами.
Функция принимает владение аргументами, поэтому вы можете написать код, подобный
list_view = gtk_list_view_new (create_model(),
gtk_builder_list_item_factory_new_from_resource ("/resource.ui"));
Параметры
model | используемая модель или | [allow-none][transfer full] |
factory | Фабрика для заполнения элементов или | [allow-none][transfer full] |
Возвращаемое значение
новый GtkListView, использующий заданные model и factory
gtk_list_view_set_factory ()
void gtk_list_view_set_factory (GtkListView *self,GtkListItemFactory *factory);
Устанавливает GtkListItemFactory, который будет использоваться для заполнения элементов списка.
Параметры
self | ||
factory | используемая фабрика или | [allow-none][transfer none] |
gtk_list_view_get_factory ()
GtkListItemFactory *
gtk_list_view_get_factory (GtkListView *self); Возвращает фабрику, которая в данный момент используется для заполнения элементов списка.
Параметры
self |
Возвращаемое значение
Используемая фабрика.
[nullable][transfer none]
gtk_list_view_set_model ()
void gtk_list_view_set_model (GtkListView *self,GtkSelectionModel *model);
Устанавливает используемую GtkSelectionModel.
Параметры
self | ||
model | используемая модель или | [allow-none][transfer none] |
gtk_list_view_get_model ()
GtkSelectionModel *
gtk_list_view_get_model (GtkListView *self); Возвращает модель, которая в данный момент используется для чтения отображаемых элементов.
Параметры
self |
Возвращаемое значение
Используемая модель.
[nullable][transfer none]
gtk_list_view_set_show_separators ()
void gtk_list_view_set_show_separators (GtkListView *self,gboolean show_separators);
Устанавливает, следует ли списку показывать разделители между строками.
Параметры
self | ||
show_separators |
|
gtk_list_view_get_show_separators ()
gboolean
gtk_list_view_get_show_separators (GtkListView *self); Возвращает, следует ли списку показывать разделители между строками.
Параметры
self |
Возвращаемое значение
TRUE если список показывает разделители
gtk_list_view_set_single-click_activate ()
void gtk_list_view_set_single_click_activate (GtkListView *self,gboolean single_click_activate);
Устанавливает, должны ли строки активироваться по одному щелчку и выбираться при наведении курсора.
Параметры
self | ||
single_click_activate |
|
gtk_list_view_get_single-click_activate ()
gboolean
gtk_list_view_get_single_click_activate
(GtkListView *self); Возвращает, будут ли строки активироваться по одному щелчку и выбираться при наведении курсора.
Параметры
self |
Возвращаемое значение
TRUE если строки активируются по одному щелчку
gtk_list_view_set_enable_rubberband ()
void gtk_list_view_set_enable_rubberband (GtkListView *self,gboolean enable_rubberband);
Устанавливает, можно ли изменять выделение путем перетаскивания мышью.
Параметры
self | ||
enable_rubberband |
|
gtk_list_view_get_enable_rubberband ()
gboolean
gtk_list_view_get_enable_rubberband (GtkListView *self); Возвращает, можно ли выбирать строки путем перетаскивания мышью.
Параметры
self |
Возвращаемое значение
TRUE если включен выбор с помощью резинки
Типы и значения
GtkListView
typedef struct _GtkListView GtkListView;
GtkListView - это простая реализация списка для виджетов списка GTK.
Подробное описание свойств
Свойство “enable-rubberband”
“enable-rubberband” gboolean
Разрешить выбор с помощью резинки
Владелец: GtkListView
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “factory”
“factory” GtkListItemFactory *
Фабрика для заполнения элементов списка
Владелец: GtkListView
Флаги: Чтение / Запись
Свойство “model”
“model” GtkSelectionModel *
Модель для отображаемых элементов
Владелец: GtkListView
Флаги: Чтение / Запись
Свойство “show-separators”
“show-separators” gboolean
Показывать разделители между строками
Владелец: GtkListView
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “single-click-activate”
“single-click-activate” gboolean
Активировать строки по одному щелчку и выбирать их при наведении курсора
Владелец: GtkListView
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Подробности сигналов
Сигнал “activate”
void user_function (GtkListView *self, guint position, gpointer user_data)
Сигнал ::activate генерируется, когда пользователь активирует строку, обычно через действие GtkListView|list.activate-item.
Это удобный способ обработки активации в списке. Подробнее о том, как использовать этот сигнал, см. gtk_list_item_set_activatable().
Параметры
self | Структура GtkListView | |
position | позиция активируемого элемента | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Run Last
Подробности действий
Действие “list.activate-item”
Активирует элемент, указанный в position, с помощью генерации сигнала GtkListView::activate.
Тип параметра: u
Параметры
position | позиция активируемого элемента |
См. также
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkListView.html