| 
 | |
|  | 
| GTK+ Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Implemented Interfaces | ||||
| GtkTreeStoreGtkTreeStore Структура данных, похожая на дерево, используемая с GtkTreeView | 
#include <gtk/gtk.h>
            GtkTreeStore;
GtkTreeStore* gtk_tree_store_new            (gint n_columns,
                                             ...);
GtkTreeStore* gtk_tree_store_newv           (gint n_columns,
                                             GType *types);
void        gtk_tree_store_set_column_types (GtkTreeStore *tree_store,
                                             gint n_columns,
                                             GType *types);
void        gtk_tree_store_set_value        (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             gint column,
                                             GValue *value);
void        gtk_tree_store_set              (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             ...);
void        gtk_tree_store_set_valist       (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             va_list var_args);
gboolean    gtk_tree_store_remove           (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter);
void        gtk_tree_store_insert           (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *parent,
                                             gint position);
void        gtk_tree_store_insert_before    (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *parent,
                                             GtkTreeIter *sibling);
void        gtk_tree_store_insert_after     (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *parent,
                                             GtkTreeIter *sibling);
void        gtk_tree_store_insert_with_values
                                            (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *parent,
                                             gint position,
                                             ...);
void        gtk_tree_store_insert_with_valuesv
                                            (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *parent,
                                             gint position,
                                             gint *columns,
                                             GValue *values,
                                             gint n_values);
void        gtk_tree_store_prepend          (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *parent);
void        gtk_tree_store_append           (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *parent);
gboolean    gtk_tree_store_is_ancestor      (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *descendant);
gint        gtk_tree_store_iter_depth       (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter);
void        gtk_tree_store_clear            (GtkTreeStore *tree_store);
gboolean    gtk_tree_store_iter_is_valid    (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter);
void        gtk_tree_store_reorder          (GtkTreeStore *tree_store,
                                             GtkTreeIter *parent,
                                             gint *new_order);
void        gtk_tree_store_swap             (GtkTreeStore *tree_store,
                                             GtkTreeIter *a,
                                             GtkTreeIter *b);
void        gtk_tree_store_move_before      (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *position);
void        gtk_tree_store_move_after       (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *position);
GObject +----GtkTreeStore
GtkTreeStore осуществляет GtkTreeModel, GtkTreeDragSource, GtkTreeDragDest и GtkTreeSortable.
Объект GtkTreeStore это модель списка используемая с виджетом GtkTreeView. Он реализует интерфейс GtkTreeModel, и логически может использовать все методы доступные в нем. Он также реализует интерфейс GtkTreeSortable поэтому может быть отсортирован. Наконец, он реализует интерфейс drag and drop.
typedef struct _GtkTreeStore GtkTreeStore;
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 с деревом столбцов, типов
int, string и GdkPixbuf
соответственно.
| 
 | Количество столбцов в дереве хранения | 
| 
 | все GType типы для столбцов, от первого до последнего | 
| Возвращает : | новый GtkTreeStore | 
GtkTreeStore* gtk_tree_store_newv           (gint n_columns,
                                             GType *types);Функция создания без переменных аргументов. В основном используется привязками языков.
| 
 | Количество столбцов в дереве хранения | 
| 
 | массив GType типов для столбцов, от первого до последнего | 
| Возвращает : | новый GtkTreeStore | 
void        gtk_tree_store_set_column_types (GtkTreeStore *tree_store,
                                             gint n_columns,
                                             GType *types);Эта функция предназначена прежде всего для GObjects которые наследуют из GtkTreeStore, и должна использоваться только при конструировании нового GtkTreeStore. Она не будет работать после добавления строки, или вызова интерфейса GtkTreeModel.
| 
 | |
| 
 | Количество столбцов в дереве хранения | 
| 
 | Массив GType типов, один для каждого столбца | 
void        gtk_tree_store_set_value        (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             gint column,
                                             GValue *value);
Устанавливает данные в ячейку определенную
iter и column. Тип
value должен быть конвертируемым
в тип столбца.
| 
 | |
| 
 | Допустимый GtkTreeIter для изменяемой строки | 
| 
 | Номер столбца для изменений | 
| 
 | Новое значение для ячейки | 
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).
| 
 | |
| 
 | Допустимый GtkTreeIter для изменяемой строки | 
| 
 | Пары номер столбца и значение, заканчивается -1 | 
void        gtk_tree_store_set_valist       (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             va_list var_args);
Смотрите gtk_tree_store_set();
эта версия принимает va_list для использования
языковыми привязками.
| 
 | |
| 
 | Допустимый GtkTreeIter для изменяемой строки | 
| 
 | va_list пар столбец/значение (column/value) | 
gboolean    gtk_tree_store_remove           (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter);
Удаляет iter из tree_store.
После удаления, iter
устанавливается в следующую доступную
строку этого уровня, или аннулируется
если ранее указывал на последнюю строку.
| 
 | |
| 
 | Допустимый GtkTreeIter | 
| Возвращает : | 
void        gtk_tree_store_insert           (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *parent,
                                             gint position);
Создаёт новую строку в позиции position.
Если родитель не-NULL,
то строка создаётся дочерней для parent.
Иначе, строка создаётся как верхний
уровень. Если position больше
чем количество строк в уровне, то новая
строка вставляется в конец списка. iter
изменяется указывая на новую строку.
Строка будет пустой после вызова этой
функции. Для заполнения значениями, вам
нужно вызвать gtk_tree_store_set()
или gtk_tree_store_set_value().
| 
 | |
| 
 | Устанавливаемый GtkTreeIter в значение новой строки | 
| 
 | Допустимый GtkTreeIter,
			или  | 
| 
 | Позиция для вставки новой строки | 
void        gtk_tree_store_insert_before    (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *parent,
                                             GtkTreeIter *sibling);
Вставляет новую строку перед sibling.
Если sibling это NULL,
то строка будет добавлена к дочерним
parent 's. Если parent
и sibling являются NULL,
то строка будет добавлена в верхний
уровень. Если оба sibling и
parent установлены, то parent
должен быть родителем sibling.
Когда sibling установлен, parent
опционален. 
iter изменяется для указания
на новую строку. Строка будет пустой
после вызова этой функции. Для заполнения
значениями, вам нужно вызвать
gtk_tree_store_set()
или gtk_tree_store_set_value().
| 
 | |
| 
 | Устанавливаемый GtkTreeIter в значение новой строки | 
| 
 | Допустимый GtkTreeIter,
			or  | 
| 
 | Допустимый GtkTreeIter,
			or  | 
void        gtk_tree_store_insert_after     (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *parent,
                                             GtkTreeIter *sibling);
Вставляет новую строку после sibling.
Если sibling это NULL,
то строка будет вставлена в начало
дочерних parent 's. Если parent
и sibling являются NULL,
то строка будет вставлена в начало
верхнего уровня. Если оба sibling
и parent установлены, то parent
должен быть родителем для sibling.
Когда sibling установлен, parent
опционален. 
iter изменяется указывая
на новую строку. Строка будет пустой
после вызова этой функции. Для заполнения
значениями, вам нужно вызвать
gtk_tree_store_set()
или gtk_tree_store_set_value().
| 
 | |
| 
 | Устанавливаемый GtkTreeIter в значение новой строки | 
| 
 | Допустимый GtkTreeIter,
			или  | 
| 
 | Допустимый GtkTreeIter,
			или  | 
void        gtk_tree_store_insert_with_values
                                            (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *parent,
                                             gint position,
                                             ...);
Создаёт новую строку в позиции position.
iter изменяется указывая на
новую строку. Если position
больше чем количество строк в списке,
то новая строка добавляется к списку.
Строка будет заполнена значениями
полученных из этой функции.
Вызов gtk_tree_store_insert_with_values (tree_store,
iter, position, ...) имеет тот же эффект как
вызов
gtk_tree_store_insert (tree_store, iter, position);
gtk_tree_store_set (tree_store, iter, ...);
разница с предыдущим только в издании
сигнала row_inserted, в то время как последний
издаёт row_inserted, row_changed и если дерево
хранения отсортировано, rows_reordered. Так
как повторное издание rows_reordered сигнала
может повлиять на выполнение программ,
gtk_tree_store_insert_with_values()
должна в основном применяться для
вставки строк в отсортированное дерево
хранения.
| 
 | |
| 
 | Устанавливаемый GtkTreeIter
			в значение новой строки, или  | 
| 
 | Допустимый GtkTreeIter,
			или  | 
| 
 | Позиция для вставки новой строки | 
| 
 | Пары, номер столбца и значение, заканчиваются -1 | 
Начиная с версии 2.10
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()
которая принимает столбцы и значения
как два массива, вместо переменного
списка аргументов. Эта функция в основном
применяется для языковых привязок.
| 
 | |
| 
 | Устанавливаемый GtkTreeIter
			в значение новой строки, или  | 
| 
 | Допустимый GtkTreeIter,
			или  | 
| 
 | Позиция для вставки новой строки | 
| 
 | Массив номеров столбцов | 
| 
 | массив GValues | 
| 
 | Длина массивов  | 
Начиная с версии 2.10
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().
| 
 | |
| 
 | Устанавливаемый GtkTreeIter в значение новой строки | 
| 
 | Допустимый GtkTreeIter,
			или  | 
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().
| 
 | |
| 
 | Устанавливаемый GtkTreeIter в значение новой строки | 
| 
 | Допустимый GtkTreeIter,
			или  | 
gboolean    gtk_tree_store_is_ancestor      (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *descendant);
Возвращает TRUE
если iter это предок descendant.
Таким образом, iter это родитель
(или прародитель или пра-прародитель) 
descendant.
| 
 | |
| 
 | Допустимый GtkTreeIter | 
| 
 | Допустимый GtkTreeIter | 
| Возвращает : | 
 | 
gint        gtk_tree_store_iter_depth       (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter);
Возвращает глубину iter.
Значение будет 0 для корневого уровня,
1 для нижнего уровня, и т.д..
| 
 | |
| 
 | Допустимый GtkTreeIter | 
| Возвращает : | Глубина  | 
void gtk_tree_store_clear (GtkTreeStore *tree_store);
Удаляет все строки из tree_store
| 
 | 
gboolean    gtk_tree_store_iter_is_valid    (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter);ВНИМАНИЕ: Эта функция очень медленная. Используйте её только для отладки и/или тестирования.
Проверяет допустим ли полученный итератор для этого GtkTreeStore.
| 
 | |
| 
 | |
| Возвращает : | 
Начиная с версии 2.2
void        gtk_tree_store_reorder          (GtkTreeStore *tree_store,
                                             GtkTreeIter *parent,
                                             gint *new_order);
Перестраивает дочерние элементы parent
в tree_store в порядок указанный
new_order. Помните, эта функция
работает только для не сортированных
хранений.
| 
 | |
| 
 | |
| 
 | Массив целочисленных отображающих
			новую позицию каждого элемента
			относительно старой после перестроения,
			например  | 
Начиная с версии 2.2
void        gtk_tree_store_swap             (GtkTreeStore *tree_store,
                                             GtkTreeIter *a,
                                             GtkTreeIter *b);
Обменивает a и b
в том же уровне tree_store.
Помните, функция работает только на не
сортированных хранилищах.
| 
 | |
| 
 | |
| 
 | Другой GtkTreeIter. | 
Начиная с версии 2.2
void        gtk_tree_store_move_before      (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *position);
Перемещает iter в tree_store
в позицию перед position. iter
и position должны быть в одном
уровне. Помните, функция работает только
на не сортированных хранилищах. Если
position это NULL,
iter будет перемещён в конец
уровня.
| 
 | |
| 
 | |
| 
 | GtkTreeIter или
			 | 
Начиная с версии 2.2
void        gtk_tree_store_move_after       (GtkTreeStore *tree_store,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *position);
Перемещает iter в tree_store
в позицию после position. iter
и position должны быть в одном
уровне. Помните, функция работает только
на не сортированных хранилищах. Ели
position равна NULL,
iter перемещается в начало
уровня.
| 
 | |
| 
 | |
| 
 | 
Начиная с версии 2.2
| Закладки на сайте Проследить за страницей | Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |