2016-04-05 4 views
2

Я использую PyGtk приложение и я добавил Treeview внутри ScrolledWindow. Теперь я хочу заморозить первый столбец (исправить положение столбца), так что при прокрутке по горизонтали позиции столбца фиксированы и все еще видны (как это сделано в excel для столбца строки).Закрепить первый столбец в Treeview PyGtk

Так как я могу заморозить TreeView колонку в PyGTK?

ответ

0

Ближайший, который я смог получить, - это немного клочья. Я использую Perl, а не Python, поэтому я просто опишу свою технику.

Подключитесь к сигналу события прокрутки древовидного дерева и смотрите направление = левое/правое (или плавное с get_scroll_deltas(), возвращающее ненулевое значение для оси X). Обязательно верните FALSE для вертикальной прокрутки, чтобы он оставался незатронутым. Затем отобразите/скройте столбцы после фиксированного (-ов) и верните TRUE.

Например: при прокрутке вправо, скрыть столбец 2, затем 3 и т. Д. При прокрутке влево отобразите скрытый столбец с самым высоким номером.

Есть пара недостатков:

  • Это не так гладко, как то, что вы ищете (столбцы не могут быть частично скрыты).
  • Не работает с полосой прокрутки, только при наклоне колеса мыши. Не у всех мышей есть наклонные колеса.
+0

При прокрутке слева направо все окно внутри полосы прокрутки перемещается. Как я узнаю, что конкретные столбцы были скрыты? –

+0

Поскольку это будет ваш обратный вызов, который их скрывает, вам придется отслеживать, какие из них вы скрыли, а затем повторно показать их. – TheAmigo

+0

Для древовидной структуры нет явных обратных вызовов, чтобы скрыть столбцы, но tree tree tree обрабатывает их изначально. Теперь я добавил событие, которое испускает, когда scolled полоса прокрутки горизонтально. Теперь, 1) Как я могу получить ширину столбца дерева? 2) Есть ли я, я могу частично скрыть столбец? –