Spec-Zone.ru › GTK 4.0

GtkTreeSelection

GtkTreeSelection — Объект выбора для GtkTreeView

Функции

gboolean (*GtkTreeSelectionFunc) ()
void (*GtkTreeSelectionForeachFunc) ()
void gtk_tree_selection_set_mode ()
GtkSelectionMode gtk_tree_selection_get_mode ()
void gtk_tree_selection_set_select_function ()
GtkTreeSelectionFunc gtk_tree_selection_get_select_function ()
gpointer gtk_tree_selection_get_user_data ()
GtkTreeView * gtk_tree_selection_get_tree_view ()
gboolean gtk_tree_selection_get_selected ()
void gtk_tree_selection_selected_foreach ()
GList * gtk_tree_selection_get_selected_rows ()
int gtk_tree_selection_count_selected_rows ()
void gtk_tree_selection_select_path ()
void gtk_tree_selection_unselect_path ()
gboolean gtk_tree_selection_path-is-selected ()
void gtk_tree_selection_select-iter ()
void gtk_tree_selection_unselect-iter ()
gboolean gtk_tree_selection_iter-is-selected ()
void gtk_tree_selection_select_all ()
void gtk_tree_selection_unselect_all ()
void gtk_tree_selection_select-range ()
void gtk_tree_selection_unselect-range ()

Свойства

GtkSelectionMode mode Чтение/Запись

Сигналы

void changed Выполняется первым

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

GtkTreeSelection

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

    GObject
    ╰── GtkTreeSelection

Файлы

#include <gtk/gtk.h>

Описание

Объект GtkTreeSelection — вспомогательный объект для управления выбором для виджета GtkTreeView. Объект GtkTreeSelection автоматически создаётся при создании нового виджета GtkTreeView и не может существовать независимо от этого виджета. Основная причина существования объектов GtkTreeSelection — чистота кода и API. То есть, нет концептуальных причин, по которым все эти функции не могли бы быть методами виджета GtkTreeView, а не отдельной функции.

Объект GtkTreeSelection извлекается из GtkTreeView с помощью вызова gtk_tree_view_get_selection(). Его можно использовать для проверки состояния выбора в дереве, а также для выбора и отмены выбора отдельных строк. Выбор выполняется полностью на стороне представления. В результате, у нескольких представлений одной и той же модели могут быть совершенно разные выборки. Кроме того, вы не можете изменить выбор строки в модели, которая в данный момент не отображается в представлении, не развернув её родительские элементы сначала.

Важно помнить, что сигнал “changed” в основном является подсказкой. То есть, он может излучать только один сигнал при выборе диапазона строк. Кроме того, он может иногда излучать сигнал “changed”, когда ничего не произошло (в основном из-за того, что программисты вызывают select_row для уже выбранной строки).

Функции

GtkTreeSelectionFunc ()

gboolean
(*GtkTreeSelectionFunc) (GtkTreeSelection *selection,
                         GtkTreeModel *model,
                         GtkTreePath *path,
                         gboolean path_currently_selected,
                         gpointer data);

Функция, используемая gtk_tree_selection_set_select_function() для фильтрации возможности выбора строки. Вызывается всякий раз, когда состояние строки может измениться. Значение TRUE указывает selection, что изменение выбора разрешено.

Параметры

selection

A GtkTreeSelection

model

A GtkTreeModel для просмотра

path

The GtkTreePath строки, о которой идёт речь

path_currently_selected

TRUE, если путь выделен в данный момент

data

данные пользователя.

[closure]

Возвращает

TRUE, если состояние выбора строки можно переключить

GtkTreeSelectionForeachFunc ()

void
(*GtkTreeSelectionForeachFunc) (GtkTreeModel *model,
                                GtkTreePath *path,
                                GtkTreeIter *iter,
                                gpointer data);

Функция, используемая gtk_tree_selection_selected_foreach() для отображения всех выделенных строк. Будет вызываться для каждой выделенной строки в представлении.

Параметры

model

The GtkTreeModel для просмотра

path

The GtkTreePath выделенной строки

iter

A GtkTreeIter указывает на выделенную строку

data

данные пользователя.

[closure]

gtk_tree_selection_set_mode ()

void
gtk_tree_selection_set_mode (GtkTreeSelection *selection,
                             GtkSelectionMode type);

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

Параметры

selection

A GtkTreeSelection.

type

Режим выбора

gtk_tree_selection_get_mode ()

GtkSelectionMode
gtk_tree_selection_get_mode (GtkTreeSelection *selection);

Получает режим выбора для selection. См. gtk_tree_selection_set_mode().

Параметры

selection

a GtkTreeSelection

Возвращает

текущий режим выбора

gtk_tree_selection_set_select_function ()

void
gtk_tree_selection_set_select_function
                               (GtkTreeSelection *selection,
                                GtkTreeSelectionFunc func,
                                gpointer data,
                                GDestroyNotify destroy);

Устанавливает функцию выбора.

Если установлена, эта функция вызывается перед выделением или снятием выделения с любого узла, предоставляя некоторый контроль над тем, какие узлы будут выбраны. Функция выбора должна возвращать TRUE если состояние узла может быть переключено и FALSE если состояние узла должно остаться неизменным.

Параметры

selection

A GtkTreeSelection.

func

Функция выбора. Может быть NULL.

[nullable]

data

Данные функции выбора. Могут быть NULL

destroy

Функция уничтожения для пользовательских данных. Может быть NULL

gtk_tree_selection_get_select_function ()

GtkTreeSelectionFunc
gtk_tree_selection_get_select_function
                               (GtkTreeSelection *selection);

Возвращает текущую функцию выбора.

[skip]

Параметры

selection

A GtkTreeSelection.

Возвращает

Функцию.

gtk_tree_selection_get_user_data ()

gpointer
gtk_tree_selection_get_user_data (GtkTreeSelection *selection);

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

[skip]

Параметры

selection

A GtkTreeSelection.

Возвращает

Пользовательские данные.

gtk_tree_selection_get_tree_view ()

GtkTreeView *
gtk_tree_selection_get_tree_view (GtkTreeSelection *selection);

Возвращает связанное с selection дерево представлений.

Параметры

selection

A GtkTreeSelection

Возвращает

A GtkTreeView.

[transfer none]

gtk_tree_selection_get_selected ()

gboolean
gtk_tree_selection_get_selected (GtkTreeSelection *selection,
                                 GtkTreeModel **model,
                                 GtkTreeIter *iter);

Устанавливает iter в текущий выбранный узел, если selection установлено в GTK_SELECTION_SINGLE или GTK_SELECTION_BROWSE. iter может быть NULL, если вы хотите только проверить, содержит ли selection какие-либо выбранные узлы. model заполняется текущей моделью для удобства. Эта функция не будет работать, если вы используете selection равное GTK_SELECTION_MULTIPLE.

Параметры

selection

A GtkTreeSelection.

model

Указатель, который будет установлен на GtkTreeModel, или NULL.

[out][allow-none][transfer none]

iter

The GtkTreeIter, или NULL.

[out][allow-none]

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

TRUE, если есть выбранный узел.

gtk_tree_selection_selected_foreach ()

void
gtk_tree_selection_selected_foreach (GtkTreeSelection *selection,
                                     GtkTreeSelectionForeachFunc func,
                                     gpointer data);

Вызывает функцию для каждого выбранного узла. Обратите внимание, что вы не можете изменять дерево или выбор из этой функции. В результате, gtk_tree_selection_get_selected_rows() может быть более полезным.

Параметры

selection

A GtkTreeSelection.

func

Функция, которая должна быть вызвана для каждого выбранного узла.

[scope call]

data

данные пользователя, передаваемые функции.

gtk_tree_selection_get_selected_rows ()

GList *
gtk_tree_selection_get_selected_rows (GtkTreeSelection *selection,
                                      GtkTreeModel **model);

Создаёт список путей всех выбранных строк. Кроме того, если вы планируете изменять модель после вызова этой функции, вам может потребоваться преобразовать возвращённый список в список GtkTreeRowReferences. Для этого вы можете использовать gtk_tree_row_reference_new().

Для освобождения возвращаемого значения используйте:

g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free);

Параметры

selection

A GtkTreeSelection.

model

Указатель, который будет установлен на GtkTreeModel, или NULL.

[out][allow-none][transfer none]

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

A GList содержащий GtkTreePath для каждой выбранной строки.

[element-type GtkTreePath][transfer full]

gtk_tree_selection_count_selected_rows ()

int
gtk_tree_selection_count_selected_rows
                               (GtkTreeSelection *selection);

Возвращает количество строк, которые были выбраны в tree .

Параметры

selection

A GtkTreeSelection.

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

Количество выбранных строк.

gtk_tree_selection_select_path ()

void
gtk_tree_selection_select_path (GtkTreeSelection *selection,
                                GtkTreePath *path);

Выбирает строку по path .

Параметры

selection

A GtkTreeSelection.

path

The GtkTreePath для выбора.

gtk_tree_selection_unselect_path ()

void
gtk_tree_selection_unselect_path (GtkTreeSelection *selection,
                                  GtkTreePath *path);

Снимает выбор с строки по path .

Параметры

selection

A GtkTreeSelection.

path

The GtkTreePath для снятия выбора.

gtk_tree_selection_path_is_selected ()

gboolean
gtk_tree_selection_path_is_selected (GtkTreeSelection *selection,
                                     GtkTreePath *path);

Возвращает TRUE если строка, на которую указывает path, в настоящее время выбрана. Если path не указывает на допустимое местоположение, возвращается FALSE.

Параметры

selection

A GtkTreeSelection.

path

A GtkTreePath для проверки выбора.

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

TRUE если path выбрано.

gtk_tree_selection_select_iter ()

void
gtk_tree_selection_select_iter (GtkTreeSelection *selection,
                                GtkTreeIter *iter);

Выбирает указанный итератор.

Параметры

selection

A GtkTreeSelection.

iter

The GtkTreeIter для выбора.

gtk_tree_selection_unselect_iter ()

void
gtk_tree_selection_unselect_iter (GtkTreeSelection *selection,
                                  GtkTreeIter *iter);

Снимает выбор с указанного итератора.

Параметры

selection

A GtkTreeSelection.

iter

The GtkTreeIter для снятия выбора.

gtk_tree_selection_iter_is_selected ()

gboolean
gtk_tree_selection_iter_is_selected (GtkTreeSelection *selection,
                                     GtkTreeIter *iter);

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

Параметры

selection

A GtkTreeSelection

iter

A valid GtkTreeIter

Возвращает

TRUE, если iter выбрана

gtk_tree_selection_select_all ()

void
gtk_tree_selection_select_all (GtkTreeSelection *selection);

Выбирает все узлы. selection должен быть установлен в режим GTK_SELECTION_MULTIPLE.

Параметры

selection

A GtkTreeSelection.

gtk_tree_selection_unselect_all ()

void
gtk_tree_selection_unselect_all (GtkTreeSelection *selection);

Снимает выбор со всех узлов.

Параметры

selection

A GtkTreeSelection.

gtk_tree_selection_select_range ()

void
gtk_tree_selection_select_range (GtkTreeSelection *selection,
                                 GtkTreePath *start_path,
                                 GtkTreePath *end_path);

Выбирает диапазон узлов, определяемый start_path и end_path включительно. selection должен быть установлен в режим GTK_SELECTION_MULTIPLE.

Параметры

selection

A GtkTreeSelection.

start_path

Начальный узел диапазона.

end_path

Конечный узел диапазона.

gtk_tree_selection_unselect_range ()

void
gtk_tree_selection_unselect_range (GtkTreeSelection *selection,
                                   GtkTreePath *start_path,
                                   GtkTreePath *end_path);

Снимает выбор с диапазона узлов, определяемого start_path и end_path включительно.

Параметры

selection

A GtkTreeSelection.

start_path

Начальный узел диапазона.

end_path

Конечный узел диапазона.

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

GtkTreeSelection

typedef struct _GtkTreeSelection GtkTreeSelection;

Подробное описание свойств

Свойство “mode”

  “mode”                     GtkSelectionMode

Режим выбора. Дополнительную информацию об этом свойстве см. в gtk_tree_selection_set_mode().

Владелец: GtkTreeSelection

Флаги: Чтение / Запись

Значение по умолчанию: GTK_SELECTION_SINGLE

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

Сигнал “changed”

void
user_function (GtkTreeSelection *treeselection,
               gpointer          user_data)

Издается всякий раз, когда выбор (возможно) изменился. Обратите внимание, что этот сигнал в основном является подсказкой. Он может быть сгенерирован только один раз при выборе диапазона строк и иногда генерируется, когда ничего не произошло.

Параметры

treeselection

объект, который получил сигнал.

user_data

пользовательские данные, установленные при подключении обработчика сигналов.

Флаги: Run First

См. также

GtkTreeView, GtkTreeViewColumn, GtkTreeModel, GtkTreeSortable, GtkTreeModelSort, GtkListStore, GtkTreeStore, GtkCellRenderer, GtkCellEditable, GtkCellRendererPixbuf, GtkCellRendererText, GtkCellRendererToggle, GtkTreeView drag-and-drop

© 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/GtkTreeSelection.html

Spec-Zone.ru

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