Форум сайта python.su
Добрый день.
Пытаюсь привязать к сколлбару собственное действие. Проблема заключается в том, что это действие выполняется сразу же, даже если сдвинуть скроллбар на 1 пиксель. Хочу, чтобы было более-менее плавно. Нагуглил про yscrollincrement, но оно работает только для Canvas, а мне нужно Text, где я получаю ‘unknown option’. Как реализовать?
Код примерно такой:
import tkinter as tk def custom_scroll(*argv): print('It works!') root=tk.Tk() frame=tk.Frame(root) frame.pack(expand=1,fill='both') scrollbar=tk.Scrollbar(frame) scrollbar.config(command=custom_scroll) #scrollbar.config(yscrollincrement=10) #Это не работает scrollbar.pack(side='right',fill='y') txt=tk.Text(frame,wrap='word',yscrollcommand=scrollbar.set) txt.pack() text='' for i in range(1000): text+=str(i)+' ' txt.insert('1.0',text) root.mainloop()
Офлайн
Уже более-менее стал разбираться, достаточно было добавить jump=1 в опции скроллбара. При jump=0 любой сдвиг скроллбара, даже на несколько пикселей, происходит мгновенно. При jump=1 сдвиг происходит только когда пользователь отпустит мышь.
Но вот проблема: на линуксе код с jump=1 работает как положено, под виндой работает так, как будто jump=0, т.е. смещение идет мгновенно, как будто никакой jump не указан вообще. Это баг?Нашел обсуждение подобной проблемы. Пофиксили ли это, или проблема в чем-то другом? Кто-нибудь сталкивался?
Офлайн