Как расположить полосу прокрутки ScrolledWindow (tkinter) внизу

Я создаю графический интерфейс с Tkinter в Python. Я создал полосу прокрутки, и вот как выглядит фрагмент кода:

beta_frame = Frame(width="500", height="680")
beta_frame.pack()
holder = ScrolledWindow(beta_frame, width=500, height=680)
holder.pack()
alpha_frame = holder.window

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

1 ответ

Решение

.see() это обычный способ заставить Tkinter автоматически прокрутить до заданной позиции, но этот метод существует только в виджетах, которые имеют встроенную поддержку прокрутки - Listbox, Canvas, Text и Entry. Окно Tix ScrolledWindow делает обычную прокручиваемую рамку, поэтому такого метода не будет.

Похоже, что эта строка кода будет делать то, что вы хотите:

holder.tk.eval(holder.vsb['command'] + " moveto 1.0")

vsb является вертикальным компонентом полосы прокрутки ScrolledWindow, 'command' является параметром конфигурации полосы прокрутки, который указывает обратный вызов, который вызывается при изменении позиции. Это будет относиться к чему-то глубоко внутри Tix, но нам все равно, что это такое; мы просто вызываем его с теми же параметрами, что и сама полоса прокрутки, если его переместить в самый конец.

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