Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Python 3 + Tkinter + Text + Scrollbar + yscrollincrement [RSS Feed]

#1 Май 19, 2015 01:34:48

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Python 3 + Tkinter + Text + Scrollbar + yscrollincrement

Добрый день.

Пытаюсь привязать к сколлбару собственное действие. Проблема заключается в том, что это действие выполняется сразу же, даже если сдвинуть скроллбар на 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()

Офлайн

#2 Май 23, 2015 04:58:26

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Python 3 + Tkinter + Text + Scrollbar + yscrollincrement

Уже более-менее стал разбираться, достаточно было добавить jump=1 в опции скроллбара. При jump=0 любой сдвиг скроллбара, даже на несколько пикселей, происходит мгновенно. При jump=1 сдвиг происходит только когда пользователь отпустит мышь.

Но вот проблема: на линуксе код с jump=1 работает как положено, под виндой работает так, как будто jump=0, т.е. смещение идет мгновенно, как будто никакой jump не указан вообще. Это баг?Нашел обсуждение подобной проблемы. Пофиксили ли это, или проблема в чем-то другом? Кто-нибудь сталкивался?

Офлайн

  • Начало
  • » GUI
  • » Python 3 + Tkinter + Text + Scrollbar + yscrollincrement[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version