Tkinter,鼠标滚轮绑定滚动条

Tkinter,Mouse wheel binding scroll bar

提问人:rock_bird 提问时间:11/7/2023 最后编辑:TheLizzardrock_bird 更新时间:11/7/2023 访问量:31

问:

我希望滚动条在有很多数据时工作,但是当有少量数据时,它不会滚动。

from tkinter import *

def on_mousewheel(event):
    canvas.yview_scroll(-1*(int(event.delta/120)), "units")

root = Tk()
root.geometry('400x300')

scrollbar = Scrollbar(root, orient=VERTICAL)
scrollbar.pack(side=RIGHT, fill=Y)

canvas = Canvas(root, yscrollcommand=scrollbar.set)
canvas.pack(fill=BOTH, expand=True)

scrollbar.config(command=canvas.yview)

canvas.bind_all("<MouseWheel>", on_mousewheel)

for i in range(10):
    label = Label(canvas, text="Label " + str(i))
    canvas.create_window(0, i*20, anchor=NW, window=label)

canvas.update_idletasks()
canvas.config(scrollregion=canvas.bbox("all"))

root.mainloop()

我希望滚动条在有很多数据时工作,但是当有少量数据时,它不是滚动的。怎么做?

Tkinter 滚动条

评论

0赞 TheLizzard 11/7/2023
您使用的是什么操作系统?我相信这仅适用于 Windows。<MouseWheel>
0赞 acw1668 11/7/2023
你想要“当有几个数据时,它不应该滚动”吗?
0赞 toyota Supra 11/7/2023
设置为 100 ) 而不是 300root.geometry('400x100'

答: 暂无答案