Найти - Пользователи
Полная версия: Python 3 + Tkinter + Text + Scrollbar + yscrollincrement
Начало » GUI » Python 3 + Tkinter + Text + Scrollbar + yscrollincrement
1
vanvanov
Добрый день.

Пытаюсь привязать к сколлбару собственное действие. Проблема заключается в том, что это действие выполняется сразу же, даже если сдвинуть скроллбар на 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()
vanvanov
Уже более-менее стал разбираться, достаточно было добавить jump=1 в опции скроллбара. При jump=0 любой сдвиг скроллбара, даже на несколько пикселей, происходит мгновенно. При jump=1 сдвиг происходит только когда пользователь отпустит мышь.

Но вот проблема: на линуксе код с jump=1 работает как положено, под виндой работает так, как будто jump=0, т.е. смещение идет мгновенно, как будто никакой jump не указан вообще. Это баг?Нашел обсуждение подобной проблемы. Пофиксили ли это, или проблема в чем-то другом? Кто-нибудь сталкивался?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB