Python Tkinter canvas.xview 单元

Mar*_*ito 3 python scroll tkinter

在“单位”(如何what)从Tkinter的画布滚动方法xview(SCROLL, step, what)yview(SCROLL, step, what)界定?它是以像素为单位定义的吗?是否可以更改它(例如,滚动速度较慢)?

有关更好的上下文,请参阅此处的代码。

提前致谢。

小智 6

对于较慢的滚动,您可以使用 Canvas 的 xscrollincrement 和 yscrollincrement 选项:

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()
Run Code Online (Sandbox Code Playgroud)


sch*_*enk 5

查看 -xview/-yview 选项的文档,尤其是 yscrollincrement 选项。所以是的,您可以更改步长。

-yscroll增量

以屏幕距离允许的任何常用形式指定垂直滚动的增量。如果该选项的值大于零,窗口中的垂直视图将受到约束,使得窗口上边缘的画布 y 坐标始终为 yScrollIncrement 的偶数倍;此外,滚动的单位(例如,选择滚动条的顶部和底部箭头时视图的变化)也将是 yScrollIncrement。如果此选项的值小于或等于零,则垂直滚动不受限制。

yview滚动数是什么

该命令根据数字和内容向上或向下调整窗口中的视图。数字必须是整数。必须是单位或页。如果什么是单位,则视图以 yScrollIncrement 选项的单位向上或向下调整(如果它大于零),否则以窗口高度的十分之一为单位。如果是页面,则视图以窗口高度的十分之九为单位进行调整。如果数字为负数,则更高的信息变得可见;如果它是积极的,那么较低的信息就会变得可见。

来自canvas的 Tk 联机帮助页。