Определение высоты строки TreeView - PullRequest
5 голосов
/ 28 августа 2011

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

Я использую код ниже:

path = Gtk.TreePath().new_first()
height = tree_view.get_cell_area(path, column).height

После создания виджета дерева, заполнения модели данных и выбора первой строки высота устанавливается равной 0. Чего мне не хватает?

P.S .: Тот же код вернет действительную высоту при запуске из обработчика сигнала "row_activation".

1 Ответ

2 голосов
/ 29 августа 2011

Возможно, это: (прочитано с сайта gtk):

"Если путь указывает на путь, который в данный момент не отображается, атрибуты y и height прямоугольника будут равны 0. Сумма всех протяжений ячеек равнане покрывает все дерево; например, между строками имеются дополнительные пиксели. Возвращенный прямоугольник эквивалентен cell_area, переданному методу gtk.CellRenderer.render (). Этот метод действителен только в том случае, если реализовано представление дерева. "

Вы также можете принудительно отобразить ожидающие операции в gtk с помощью этого кода:

    ##  force the refresh of the screen
    while gtk.events_pending():
        gtk.main_iteration()
...