Spec-Zone.ru › GTK 3.20

GtkTreeStore

GtkTreeStore — Древовидная структура данных, которая может использоваться с GtkTreeView

Функции

GtkTreeStore * gtk_tree_store_new ()
GtkTreeStore * gtk_tree_store_newv ()
void gtk_tree_store_set_column_types ()
void gtk_tree_store_set_value ()
void gtk_tree_store_set ()
void gtk_tree_store_set_valist ()
void gtk_tree_store_set_valuesv ()
gboolean gtk_tree_store_remove ()
void gtk_tree_store_insert ()
void gtk_tree_store_insert_before ()
void gtk_tree_store_insert_after ()
void gtk_tree_store_insert_with_values ()
void gtk_tree_store_insert_with_valuesv ()
void gtk_tree_store_prepend ()
void gtk_tree_store_append ()
gboolean gtk_tree_store_is_ancestor ()
gint gtk_tree_store_iter_depth ()
void gtk_tree_store_clear ()
gboolean gtk_tree_store_iter_is_valid ()
void gtk_tree_store_reorder ()
void gtk_tree_store_swap ()
void gtk_tree_store_move_before ()
void gtk_tree_store_move_after ()

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

struct GtkTreeStore

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

    GObject
    ╰── GtkTreeStore

Реализованные интерфейсы

GtkTreeStore реализует GtkTreeModel, GtkTreeDragSource, GtkTreeDragDest, GtkTreeSortable и GtkBuildable.

Включаемые файлы

#include <gtk/gtk.h>

Описание

Объект GtkTreeStore является моделью списка для использования с виджетом GtkTreeView. Он реализует интерфейс GtkTreeModel, и, следовательно, может использовать все доступные там методы. Он также реализует интерфейс GtkTreeSortable, поэтому его можно сортировать с помощью представления. Наконец, он также реализует интерфейсы перетаскивания для дерева drag and drop.

GtkTreeStore как GtkBuildable

Реализация GtkTreeStore интерфейса GtkBuildable позволяет указать столбцы модели с помощью элемента <columns>, который может содержать несколько элементов <column>, каждый из которых указывает один столбец модели. Атрибут “type” указывает тип данных для столбца.

Пример фрагмента определения пользовательского интерфейса для хранилища дерева:

Функции

gtk_tree_store_new ()

GtkTreeStore *
gtk_tree_store_new (gint n_columns,
                    ...);

Создаёт новый хранилище дерева с n_columns столбцами, каждый из которых имеет указанный тип. Обратите внимание, что поддерживаются только типы, производные от стандартных фундаментальных типов GObject.

Например, gtk_tree_store_new (3, G_TYPE_INT, G_TYPE_STRING, GDK_TYPE_PIXBUF); создаст новое хранилище дерева GtkTreeStore с тремя столбцами типа gint, gchararray и GdkPixbuf соответственно.

Параметры

n_columns

количество столбцов в хранилище дерева

...

все типы GType для столбцов, от первого до последнего

Возвращает

новое хранилище дерева GtkTreeStore

gtk_tree_store_newv ()

GtkTreeStore *
gtk_tree_store_newv (gint n_columns,
                     GType *types);

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

[rename-to gtk_tree_store_new]

Параметры

n_columns

количество столбцов в хранилище дерева

types

массив типов GType для столбцов, от первого до последнего.

[array length=n_columns]

Возвращает

новое хранилище дерева GtkTreeStore.

[transfer full]

gtk_tree_store_set_column_types ()

void
gtk_tree_store_set_column_types (GtkTreeStore *tree_store,
                                 gint n_columns,
                                 GType *types);

Эта функция предназначена в первую очередь для GObjects, которые наследуются от GtkTreeStore, и должна использоваться только при создании нового GtkTreeStore. Она не будет работать после добавления строки или вызова метода интерфейса GtkTreeModel.

Параметры

tree_store

A GtkTreeStore

n_columns

Количество столбцов для хранилища дерева

types

Массив типов GType, по одному для каждого столбца.

[array length=n_columns]

gtk_tree_store_set_value ()

void
gtk_tree_store_set_value (GtkTreeStore *tree_store,
                          GtkTreeIter *iter,
                          gint column,
                          GValue *value);

Устанавливает данные в ячейке, указанной iter и column . Тип value должен быть преобразуем в тип столбца.

Параметры

tree_store

хранилище GtkTreeStore

iter

Действительный GtkTreeIter для изменяемой строки

column

номер столбца для изменения

value

новое значение для ячейки

gtk_tree_store_set ()

void
gtk_tree_store_set (GtkTreeStore *tree_store,
                    GtkTreeIter *iter,
                    ...);

Устанавливает значения одной или нескольких ячеек в строке, на которую ссылается iter . Список аргументов должен содержать целочисленные номера столбцов, каждый номер столбца, за которым следует устанавливаемое значение. Список завершается -1. Например, чтобы установить столбец 0 с типом G_TYPE_STRING на “Foo”, вы напишете gtk_tree_store_set (store, iter, 0, "Foo", -1).

Значение будет использоваться хранилищем, если это G_TYPE_OBJECT, и оно будет скопировано, если это G_TYPE_STRING или G_TYPE_BOXED.

Параметры

tree_store

A GtkTreeStore

iter

Действительный GtkTreeIter для изменяемой строки

...

пары номер столбца и значение, завершённые -1

gtk_tree_store_set_valist ()

void
gtk_tree_store_set_valist (GtkTreeStore *tree_store,
                           GtkTreeIter *iter,
                           va_list var_args);

См. gtk_tree_store_set(); этот вариант принимает va_list для использования языковыми связующими.

Параметры

tree_store

A GtkTreeStore

iter

Действительный GtkTreeIter для изменяемой строки

var_args

va_list пар столбец/значение

gtk_tree_store_set_valuesv ()

void
gtk_tree_store_set_valuesv (GtkTreeStore *tree_store,
                            GtkTreeIter *iter,
                            gint *columns,
                            GValue *values,
                            gint n_values);

Вариант gtk_tree_store_set_valist(), который принимает столбцы и значения в виде двух массивов вместо переменного числа аргументов. Эта функция предназначена в основном для языковых связующих или в случае, когда количество столбцов для изменения неизвестно до выполнения.

[rename-to gtk_tree_store_set]

Параметры

tree_store

A GtkTreeStore

iter

Действительный GtkTreeIter для изменяемой строки

columns

массив номеров столбцов.

[array length=n_values]

values

массив GValues.

[array length=n_values]

n_values

длина массивов columns и values

С: 2.12

gtk_tree_store_remove ()

gboolean
gtk_tree_store_remove (GtkTreeStore *tree_store,
                       GtkTreeIter *iter);

Удаляет iter из tree_store. После удаления iter устанавливается на следующую допустимую строку на этом уровне или становится недопустимой, если ранее указывала на последнюю строку.

Параметры

tree_store

A GtkTreeStore

iter

Допустимый GtkTreeIter

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

TRUE, если iter всё ещё допустимо, FALSE, если нет.

gtk_tree_store_insert ()

void
gtk_tree_store_insert (GtkTreeStore *tree_store,
                       GtkTreeIter *iter,
                       GtkTreeIter *parent,
                       gint position);

Создаёт новую строку в position. Если parent не NULL, то строка станет дочерней для parent. В противном случае строка будет создана на верхнем уровне. Если position равно -1 или больше, чем количество строк на этом уровне, новая строка будет вставлена в конец списка. iter будет изменено на указание на эту новую строку. После вызова функции строка будет пустой. Для заполнения значений необходимо вызвать gtk_tree_store_set() или gtk_tree_store_set_value().

Параметры

tree_store

A GtkTreeStore

iter

Неинициализированный GtkTreeIter, который нужно установить на новую строку.

[out]

parent

Допустимый GtkTreeIter или NULL.

[allow-none]

position

Позиция для вставки новой строки, или -1 для последней.

gtk_tree_store_insert_before ()

void
gtk_tree_store_insert_before (GtkTreeStore *tree_store,
                              GtkTreeIter *iter,
                              GtkTreeIter *parent,
                              GtkTreeIter *sibling);

Вставляет новую строку перед sibling. Если sibling равен NULL, то строка будет добавлена в список детей parent. Если parent и sibling равны NULL, то строка будет добавлена к верхнему уровню. Если оба sibling и parent установлены, то parent должен быть родителем sibling. Когда sibling установлен, parent необязателен.

iter будет изменено на указание на эту новую строку. После вызова функции строка будет пустой. Для заполнения значений необходимо вызвать gtk_tree_store_set() или gtk_tree_store_set_value().

Параметры

tree_store

A GtkTreeStore

iter

Неинициализированный GtkTreeIter, который нужно установить на новую строку.

[out]

parent

Допустимый GtkTreeIter или NULL.

[allow-none]

sibling

Допустимый GtkTreeIter или NULL.

[allow-none]

gtk_tree_store_insert_after ()

void
gtk_tree_store_insert_after (GtkTreeStore *tree_store,
                             GtkTreeIter *iter,
                             GtkTreeIter *parent,
                             GtkTreeIter *sibling);

Вставляет новую строку после sibling. Если sibling равен NULL, то строка будет добавлена в начало списка детей parent. Если parent и sibling равны NULL, то строка будет добавлена к верхнему уровню. Если оба sibling и parent установлены, то parent должен быть родителем sibling. Когда sibling установлен, parent необязателен.

iter будет изменено на указание на эту новую строку. После вызова функции строка будет пустой. Для заполнения значений необходимо вызвать gtk_tree_store_set() или gtk_tree_store_set_value().

Параметры

tree_store

A GtkTreeStore

iter

Неинициализированный GtkTreeIter, который нужно установить на новую строку.

[out]

parent

Допустимый GtkTreeIter или NULL.

[allow-none]

sibling

Допустимый GtkTreeIter или NULL.

[allow-none]

gtk_tree_store_insert_with_values ()

void
gtk_tree_store_insert_with_values (GtkTreeStore *tree_store,
                                   GtkTreeIter *iter,
                                   GtkTreeIter *parent,
                                   gint position,
                                   ...);

Создаёт новую строку в позиции position . iter будет изменена, чтобы указывать на эту новую строку. Если position равно -1 или больше, чем количество строк в списке, то новая строка будет добавлена в конец списка. Строка будет заполнена значениями, заданными в этой функции.

Вызов gtk_tree_store_insert_with_values (tree_store, iter, position, ...) эквивалентен вызову

<object class="GtkTreeStore">
  <columns>
    <column type="gchararray"/>
    <column type="gchararray"/>
    <column type="gint"/>
  </columns>
</object>

за исключением того, что первый вызов будет генерировать только сигнал row_inserted, а второй — сигналы row_inserted, row_changed и, если дерево отсортировано, rows_reordered. Поскольку многократное генерирование сигнала rows_reordered может негативно повлиять на производительность программы, gtk_tree_store_insert_with_values() обычно следует предпочесть при вставке строк в отсортированное дерево.

Параметры

tree_store

A GtkTreeStore

iter

Незаданный GtkTreeIter, чтобы установить новую строку, или NULL.

[out][allow-none]

parent

Действительный GtkTreeIter, или NULL.

[allow-none]

position

Позиция вставки новой строки, или -1 для добавления в конец.

...

Пары номера столбца и значения, завершающиеся -1.

С: 2.10

gtk_tree_store_insert_with_valuesv ()

void
gtk_tree_store_insert_with_valuesv (GtkTreeStore *tree_store,
                                    GtkTreeIter *iter,
                                    GtkTreeIter *parent,
                                    gint position,
                                    gint *columns,
                                    GValue *values,
                                    gint n_values);

Вариант gtk_tree_store_insert_with_values(), принимающий столбцы и значения в виде двух массивов вместо переменного количества аргументов. Эта функция предназначена в основном для языковых библиотек.

[rename-to gtk_tree_store_insert_with_values]

Параметры

tree_store

A GtkTreeStore

iter

Незаданный GtkTreeIter, чтобы установить новую строку, или NULL.

[out][allow-none]

parent

Действительный GtkTreeIter, или NULL.

[allow-none]

position

Позиция вставки новой строки, или -1 для добавления в конец.

columns

массив номеров столбцов.

[array length=n_values]

values

массив GValues.

[array length=n_values]

n_values

Длина массивов columns и values.

С: 2.10

gtk_tree_store_prepend ()

void
gtk_tree_store_prepend (GtkTreeStore *tree_store,
                        GtkTreeIter *iter,
                        GtkTreeIter *parent);

Добавляет новую строку в начало списка tree_store. Если parent не NULL, то новая строка будет добавлена перед первым дочерним элементом parent, в противном случае — в начало списка. iter будет изменено для указания на эту новую строку. Строка будет пустой после вызова функции. Для заполнения значений необходимо вызвать gtk_tree_store_set() или gtk_tree_store_set_value().

Параметры

tree_store

A GtkTreeStore

iter

Незаданный GtkTreeIter для новой строки.

[out]

parent

Действительный GtkTreeIter, или NULL.

[allow-none]

gtk_tree_store_append ()

void
gtk_tree_store_append (GtkTreeStore *tree_store,
                       GtkTreeIter *iter,
                       GtkTreeIter *parent);

Добавляет новую строку в конец списка tree_store. Если parent не NULL, то новая строка будет добавлена после последнего дочернего элемента parent, в противном случае — в конец списка. iter будет изменено для указания на эту новую строку. Строка будет пустой после вызова функции. Для заполнения значений необходимо вызвать gtk_tree_store_set() или gtk_tree_store_set_value().

Параметры

tree_store

A GtkTreeStore

iter

Незаданный GtkTreeIter для новой строки.

[out]

parent

Действительный GtkTreeIter, или NULL.

[allow-none]

gtk_tree_store_is_ancestor ()

gboolean
gtk_tree_store_is_ancestor (GtkTreeStore *tree_store,
                            GtkTreeIter *iter,
                            GtkTreeIter *descendant);

Возвращает TRUE, если iter является предком descendant. То есть, iter является родителем (или прародителем, или прапрародителем) descendant.

Параметры

tree_store

A GtkTreeStore

iter

Действительный GtkTreeIter

descendant

Действительный GtkTreeIter

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

TRUE, если iter является предком descendant

gtk_tree_store_iter_depth ()

gint
gtk_tree_store_iter_depth (GtkTreeStore *tree_store,
                           GtkTreeIter *iter);

Возвращает глубину iter. Она равна 0 для элементов на корневом уровне, 1 для элементов на уровне ниже корневого и т.д.

Параметры

tree_store

A GtkTreeStore

iter

Действительный GtkTreeIter

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

Глубина iter

gtk_tree_store_clear ()

void
gtk_tree_store_clear (GtkTreeStore *tree_store);

Удаляет все строки из tree_store

Параметры

tree_store

a GtkTreeStore

gtk_tree_store_iter_is_valid ()

gboolean
gtk_tree_store_iter_is_valid (GtkTreeStore *tree_store,
                              GtkTreeIter *iter);

ВНИМАНИЕ: Эта функция медленная. Используйте её только для отладки и тестирования.

Проверяет, является ли переданный итератор допустимым для данного GtkTreeStore.

Параметры

tree_store

A GtkTreeStore.

iter

A GtkTreeIter.

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

TRUE, если итератор допустим, FALSE в противном случае.

Since: 2.2

gtk_tree_store_reorder ()

void
gtk_tree_store_reorder (GtkTreeStore *tree_store,
                        GtkTreeIter *parent,
                        gint *new_order);

Переупорядочивает потомков parent в tree_store в соответствии с порядком, указанным в new_order. Обратите внимание, что эта функция работает только с неупорядоченными хранилищами.

[skip]

Параметры

tree_store

A GtkTreeStore

parent

A GtkTreeIter, или NULL.

[nullable]

new_order

массив целых чисел, сопоставляющий новую позицию каждого потомка со старой позицией до переупорядочивания, т.е. new_order [newpos] = oldpos.

[array]

Since: 2.2

gtk_tree_store_swap ()

void
gtk_tree_store_swap (GtkTreeStore *tree_store,
                     GtkTreeIter *a,
                     GtkTreeIter *b);

Меняет местами a и b на одном уровне в tree_store. Обратите внимание, что эта функция работает только с неупорядоченными хранилищами.

Параметры

tree_store

A GtkTreeStore.

a

A GtkTreeIter.

b

Другой GtkTreeIter.

Since: 2.2

gtk_tree_store_move_before ()

void
gtk_tree_store_move_before (GtkTreeStore *tree_store,
                            GtkTreeIter *iter,
                            GtkTreeIter *position);

Перемещает iter в tree_store перед position. iter и position должны быть на одном уровне. Если position равно NULL, iter будет перемещено в конец уровня.

Параметры

tree_store

A GtkTreeStore.

iter

A GtkTreeIter.

position

A GtkTreeIter или NULL.

[allow-none]

Since: 2.2

gtk_tree_store_move_after ()

void
gtk_tree_store_move_after (GtkTreeStore *tree_store,
                           GtkTreeIter *iter,
                           GtkTreeIter *position);

Перемещает iter в tree_store после position. iter и position должны быть на одном уровне. Если position равно NULL, iter будет перемещено в начало уровня.

Параметры

tree_store

A GtkTreeStore.

iter

A GtkTreeIter.

position

A GtkTreeIter.

[allow-none]

Since: 2.2

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

struct GtkTreeStore

struct GtkTreeStore;

См. также

GtkTreeModel

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.20/GtkTreeStore.html

Spec-Zone.ru

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