Как расположить полосу прокрутки 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, но нам все равно, что это такое; мы просто вызываем его с теми же параметрами, что и сама полоса прокрутки, если его переместить в самый конец.