LINUX.ORG.RU

[gtk.TreeModel] Как бы исключить parent iter?


0

1

Нет ли какого флага/функции чтоб не считались родительские итеры?

Т.е. есть список пронумерованных елементов различных категорий, я заполняю «категория --> элементы», но как к ним обрашаться, получается что в treemodel это не 126-ой элемент(к примеру), а 4-ый элемент в 5-ой категории.Ничего лучше не придумал как складывать обычные итеры в список при заполнении - но это нехорошо(элементов может быть несколько тысяч).

★★

Ответ на: комментарий от ananas

Из приложения.Хочу, например, фокус поставить на 126-ой элемент, или текст поменять, неважно.В списке-то по номерам.При простом tree (list) всё удобно - номер соответствует позиции в tree.

nitz ★★
() автор топика
Ответ на: комментарий от nitz

тогда лучше складывать в список не итеры, а символьные или индексные пути. строка «4:5» или пара чисел 4, 5 будут показывать на 5-й элемент 4-й категории. а дальше получить путь через gtk_tree_path_new_from_string() или gtk_tree_path_new_from_indices() и добраться до нужного итера.

хотя сквозная нумерация для дерева - несколько странно

ananas ★★★★★
()

но это нехорошо (элементов может быть несколько тысяч)

Если так волнует чистота решения, напиши свой TreeModel, там не так уж много методов надо реализовать.

А если жалко ресурсов, то ananas дал хороший совет.

baverman ★★★
()
Ответ на: комментарий от ananas

Значит флага нeт, и по сути всё правильно сделано, понятно.

Пути - вроде бы оно и так, но это лишнee преобразование (что плохо при заполнении, ведь заполнениe - мeдлeнная часть.А итер сразу есть).Вобщeм надо померять-посмотрeть.

nitz ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.