Блоки Python Tkinter canvas.xview - PullRequest
3 голосов
/ 28 июля 2011

Как определяются «единицы измерения» (what) из методов прокрутки холста Tkinter xview(SCROLL, step, what) и yview(SCROLL, step, what)?Это определяется в пикселях?Можно ли изменить его (например, для более медленной прокрутки)?

Для лучшего контекста см. Код здесь .

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 08 августа 2011

для более медленной прокрутки, вы можете поиграть с опциями xscrollincrement и yscrollincrement в Canvas:

from Tkinter import *

root = Tk()
c = Canvas(root, scrollregion=(0,0,500,500), height=200, width=200)
s = Scrollbar(root, command=c.yview)
c.pack(side=LEFT)
s.pack(side=RIGHT, fill=Y)
c.configure(yscrollcommand=s.set)


c.configure(yscrollincrement='2')
##yscrollincrement - increment for vertical scrolling, in pixels,
##millimeters '2m', centimeters '2c', or inches '2i'

c.create_rectangle(10,10,100,100)
c.create_rectangle(10,200,100,300)

def rollWheel(event):
    direction = 0
    if event.num == 5 or event.delta == -120:
     direction = 1
    if event.num == 4 or event.delta == 120:
     direction = -1
    event.widget.yview_scroll(direction, UNITS)

c.bind('<MouseWheel>', lambda event: rollWheel(event))
c.bind('<Button-4>', lambda event: rollWheel(event))
c.bind('<Button-5>', lambda event: rollWheel(event))

c.focus_set()

root.mainloop()
1 голос
/ 29 июля 2011

Посмотрите документы для параметров -xview / -yview, особенно для параметра yscrollincrement.Так что да, вы можете изменить размер шага.

-yscrollincrement

Определяет приращение для вертикальной прокрутки в любой из обычных форм, разрешенных для расстояний экрана.Если значение этого параметра больше нуля, вертикальный вид в окне будет ограничен, так что координата холста y на верхнем крае окна всегда будет кратна yScrollIncrement;кроме того, единицы для прокрутки (например, изменение вида при выборе верхней и нижней стрелок полосы прокрутки) также будут yScrollIncrement.Если значение этой опции меньше или равно нулю, тогда вертикальная прокрутка не ограничена.

и

yview номер прокрутки чем

ThisКоманда настраивает вид в окне вверх или вниз в зависимости от числа и чего.Число должно быть целым числом.Что должно быть или единицами или страницами.Если это единицы, вид корректируется вверх или вниз в единицах параметра yScrollIncrement, если он больше нуля, или в единицах 1/10 высоты окна в противном случае.Если речь идет о страницах, то представление корректирует в единицах девяти десятых высоту окна.Если число является отрицательным, то более высокая информация становится видимой;если оно положительное, тогда становится видимой более низкая информация.

со страницы руководства Tk для canvas .

...