Форум сайта python.su
Не могли бы вы подсказать, как сделать автопрокрутку в виджете Text, в который нельзя писать на определенное количество пикселей в минуту?
Заранее спасибо.
Офлайн
Попробуйте готовый виджет ScrolledText. Если я правильно помню, то он должен прокручиваться, если добавляется текст, который он не может показать, так, чтобы его было видно.
Офлайн
А возможно ли сделать так, чтобы при определенном событии текст начинал опускаться?
Офлайн
Да.
Вот тут достаточно подробно объяснено
Я бы просто повесил бы дебагеры и посмотрел как оно пишет, как в примере и вызвал бы нужные потом мне события с интервалом, хотя такое поведение все же странное. Только не ставьте time.sleep, а ставьте .after()
Офлайн
А можно пример кода?
Офлайн
Это пример “перехватчика”.
# class DebugScrollbar(Scrollbar): def set(self, *args): print "SCROLLBAR SET", args Scrollbar.set(self, *args) # class DebugListbox(Listbox): def yview(self, *args): print "LISTBOX YVIEW", args Listbox.yview(self, *args) # scrollbar = DebugScrollbar() scrollbar.pack(side=RIGHT, fill=Y) # listbox = DebugListbox(yscrollcommand=scrollbar.set) listbox.pack() # scrollbar.config(command=listbox.yview)
Офлайн
Я не понимаю, что делает этот код. Мне надо, чтобы при нажатии на кнопку виджет Text начал прокручиваться по 10px в секунду, например.
Офлайн
Т.е. я должен написать приложение с перехватчиком. Просмотреть какие данные он передает, потом реализовать такую же передачу в функцию исполнителю с таймером и выложить сюда скрипт?
Офлайн
Я просто хотел узнать, есть ли такая функция, которая будет прокручивать текст при нажатии на кнопку
Офлайн
Смотрите
widget['yscrollcommand'] = scrollbar.set
scrollbar['command'] = widget.yview
Отредактировано 4kpt_IV (Янв. 23, 2017 11:52:53)
Офлайн