Tkinter: лучший способ реализовать "Listbox с заголовками"

В Python у меня есть список словарей, который в основном выглядит так:

the_list = [{'name': "A", 'entries': [1, 2, 3]}, {'name': "B", 'entries': [4, 5, 6]}, ...] 

С Tkinter я хочу позволить пользователю выбрать одну запись (здесь число) из списка или что-то подобное. Имя, здесь "A" или "B" должно отображаться, но не может быть выбрано. Все это должно иметь полосы прокрутки на случай, если записи занимают больше места, чем предоставляет окно. По соображениям совместимости было бы лучше, если бы использовался только Tkinter, но если это усложняло ситуацию, Tix также мог бы быть приемлемым.

Моей первой попыткой было использование только одного списка и полосы прокрутки. Однако это создает проблему, заключающуюся в том, что имена также являются списками и поэтому могут быть выбраны.

Моей следующей идеей было использовать Tix ScrolledWindow, внутри которого я генерирую метки для имен и списки для записей.

Однако, прежде чем я попытаюсь понять, что я хочу спросить, может ли быть гораздо лучшее решение.

1 ответ

Решение

Вы можете использовать виджет ttk TreeView, который позволяет иметь заголовки и несколько столбцов.

Для получения дополнительной информации см. http://www.tkdocs.com/tutorial/tree.html

Другие вопросы по тегам