Рамка прокрутки Python tk? - PullRequest
       17

Рамка прокрутки Python tk?

4 голосов
/ 29 декабря 2010

Я создаю простое приложение с графическим интерфейсом, использующее Tkinter с Python, но у меня возникают проблемы с добавлением полосы прокрутки к одному кадру.Рамка видна сверху вниз на моих 20 ", но для отображения всего на нетбуке или любом другом экране низкого разрешения требуется полоса прокрутки. Вот фрагмент того, как я думал, что это будет работать (это происходит со списками).

framelist = Tkinter.Frame(self.pmaster, relief=FLAT, borderwidth=0)
framelist.pack(fill=BOTH, padx=0, pady=0)
yscroll = Tkinter.Scrollbar(framelist, width=10, orient=VERTICAL)
yscroll.pack(fill=Y,side=RIGHT,padx=0,pady=0)

Хотя это явно не работает с кадрами. Любая помощь по этому вопросу от вас, ребята, будет высоко оценена!

Мне также интересно, может ли Tkinter устареть.единственный графический интерфейс, который я изучил в школе, но это несколько лет назад, и он больше не отвечает моим требованиям. Конечно, должна быть лучшая альтернатива? Я на Ubuntu, кстати.

1 Ответ

6 голосов
/ 29 декабря 2010

Виджет фрейма tkinter не прокручивается.Одно из решений состоит в том, чтобы поместить весь кадр на холст (как объект холста) и прикрепить полосу прокрутки к холсту.Вы должны указать холсту, насколько велика область прокрутки, что вы можете сделать, получив размер рамки, как только вы поместите в нее все виджеты.Тем не менее, вы можете пересмотреть свой дизайн пользовательского интерфейса - прокручиваемые фреймы не очень просты в использовании, независимо от того, какой инструментарий GUI вы используете.

Что касается устаревания Tkinter ... некоторые говорят, что да, некоторые говорятнет.Существует много дезинформации от tkinter, так что примите все мнения о tkinter с долей соли (даже моей!).Ткинтер продолжает улучшаться, он не застаивается.Если у вас есть возможность использовать Python 2.7 или выше, у вас есть доступ к виджетам ttk, которые предлагают темы для конкретной платформы и дополнительные виджеты, такие как записная книжка и иерархическое дерево среди других.

В качестве альтернативы вы можете проверить wxPython.По моему опыту, он, кажется, имеет гораздо больше ошибок и изюминок, чем tkinter, но имеет гораздо больше виджетов и, кажется, более популярным.

Мне нравится думать, что разница между tkinter и wxPython аналогична разнице между Home Depot (магазином товаров для дома / поясничного двора) и Ikea (сборная мебель, которую вы собираете самостоятельно) - каждый дает вам все кусочкии кусочки, чтобы сделать почти все, что вы хотите (tkinter) другой дает вам много готовых вещей.У каждого подхода есть свои сильные и слабые стороны.

...