Эффективное использование виджета ttk (tk 8.5) Notebook (прокрутка вкладок) - PullRequest
1 голос
/ 02 августа 2010

Я работаю над проектом с использованием Tkinter и Python. Для создания собственных тем и использования новых виджетов я использую ttk в Python 2.6. Моя проблема заключается в том, как позволить пользователю прокручивать вкладки в виджете блокнота (а-ля firefox). Кроме того, мне нужна часть в правом краю вкладок для кнопки закрытия. Рамка для активной вкладки должна заполнить доступное горизонтальное пространство (в том числе под стрелками прокрутки).

Я думал, что смогу сделать это, используя менеджер геометрии Place, но мне было интересно, есть ли лучший способ? В документации ttk python нет никаких способов справиться с этим, что я мог видеть.

Редактировать: похоже, есть трудности даже при попытке реализовать это с помощью места. Во-первых, мне все еще нужны вкладки для прокрутки и активная панель, чтобы оставаться на одном месте.

Ответы [ 2 ]

2 голосов
/ 06 сентября 2010

Виджет ноутбука не выполняет прокрутку вкладок (или их нескольких слоев), потому что разработчик не верит, что они создают хороший графический интерфейс. Я вижу его точку зрения; такие графические интерфейсы, как правило, отстой. Лучший обходной путь, который я видел, состоит в том, чтобы иметь боковую панель, которая позволяет выбирать, какую панель отображать. Затем вы можете применить хитрости к этой панели для управления количеством информации в ней (например, сделав ее виджетом в виде дерева и сохранив информацию иерархически, как большинство почтовых клиентов обрабатывают почтовые папки; виджеты в виде дерева можно прокручивать).

0 голосов
/ 02 августа 2010

Я никогда не использовал эти виджеты, поэтому я понятия не имею, насколько это возможно, но я бы попробовал нечто похожее на метод grid_remove (). Если вы можете переместить вкладки в невидимый виджет или просто сделать их невидимыми без потери содержимого, это то, что я искал / пробовал.

...