Spec-Zone.ru › GTK 4.0

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

Типы и значения

GtkListView

Иерархия объектов

    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

используемая модель или NULL.

[allow-none][transfer full]

factory

Фабрика для заполнения элементов или NULL.

[allow-none][transfer full]

Возвращаемое значение

новый GtkListView, использующий заданные model и factory

gtk_list_view_set_factory ()

void
gtk_list_view_set_factory (GtkListView *self,
                           GtkListItemFactory *factory);

Устанавливает GtkListItemFactory, который будет использоваться для заполнения элементов списка.

Параметры

self

a GtkListView

factory

используемая фабрика или NULL для отсутствия.

[allow-none][transfer none]

gtk_list_view_get_factory ()

GtkListItemFactory *
gtk_list_view_get_factory (GtkListView *self);

Возвращает фабрику, которая в данный момент используется для заполнения элементов списка.

Параметры

self

a GtkListView

Возвращаемое значение

Используемая фабрика.

[nullable][transfer none]

gtk_list_view_set_model ()

void
gtk_list_view_set_model (GtkListView *self,
                         GtkSelectionModel *model);

Устанавливает используемую GtkSelectionModel.

Параметры

self

a GtkListView

model

используемая модель или NULL для отсутствия.

[allow-none][transfer none]

gtk_list_view_get_model ()

GtkSelectionModel *
gtk_list_view_get_model (GtkListView *self);

Возвращает модель, которая в данный момент используется для чтения отображаемых элементов.

Параметры

self

a GtkListView

Возвращаемое значение

Используемая модель.

[nullable][transfer none]

gtk_list_view_set_show_separators ()

void
gtk_list_view_set_show_separators (GtkListView *self,
                                   gboolean show_separators);

Устанавливает, следует ли списку показывать разделители между строками.

Параметры

self

a GtkListView

show_separators

TRUE для отображения разделителей

gtk_list_view_get_show_separators ()

gboolean
gtk_list_view_get_show_separators (GtkListView *self);

Возвращает, следует ли списку показывать разделители между строками.

Параметры

self

a GtkListView

Возвращаемое значение

TRUE если список показывает разделители

gtk_list_view_set_single-click_activate ()

void
gtk_list_view_set_single_click_activate
                               (GtkListView *self,
                                gboolean single_click_activate);

Устанавливает, должны ли строки активироваться по одному щелчку и выбираться при наведении курсора.

Параметры

self

a GtkListView

single_click_activate

TRUE для активации элементов по одному щелчку

gtk_list_view_get_single-click_activate ()

gboolean
gtk_list_view_get_single_click_activate
                               (GtkListView *self);

Возвращает, будут ли строки активироваться по одному щелчку и выбираться при наведении курсора.

Параметры

self

a GtkListView

Возвращаемое значение

TRUE если строки активируются по одному щелчку

gtk_list_view_set_enable_rubberband ()

void
gtk_list_view_set_enable_rubberband (GtkListView *self,
                                     gboolean enable_rubberband);

Устанавливает, можно ли изменять выделение путем перетаскивания мышью.

Параметры

self

a GtkListView

enable_rubberband

TRUE для включения выбора с помощью резинки

gtk_list_view_get_enable_rubberband ()

gboolean
gtk_list_view_get_enable_rubberband (GtkListView *self);

Возвращает, можно ли выбирать строки путем перетаскивания мышью.

Параметры

self

a GtkListView

Возвращаемое значение

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

END_OF_DOCUMENT_MARKER

Подробности сигналов

Сигнал “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

позиция активируемого элемента

См. также

GtkSelectionModel, GtkColumnView, GtkGridView

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API