Python Tkinter:文本小部件解绑鼠标滚轮

4 投票
1 回答
1891 浏览
提问于 2025-04-18 02:14

我现在有一个图形界面(GUI),里面使用了文本框(Text widget),我发现可以用鼠标滚轮来上下滚动这个文本框。

不过,我已经为这个功能准备了一个滚动条,所以我打算把鼠标滚轮用在其他事情上。那么,怎么才能把这个滚轮的功能从文本框上去掉呢?

下面是一个示例代码:

from Tkinter import *

def onclick():
   pass

root = Tk()
text = Text(root)
text.insert(INSERT, "Hello.....")
for _ in range(1000):
   text.insert(END, "Bye Bye.....")
text.pack()

text.tag_add("here", "1.0", "1.4")
text.tag_add("start", "1.8", "1.13")
text.tag_config("here", background="yellow", foreground="blue")
text.tag_config("start", background="black", foreground="green")
root.mainloop()

1 个回答

3

在回调函数中使用return 'break'会改变默认的行为。只需要把<MouseWheel>事件绑定到文本小部件上就可以了:

def scrollwheel(event):
    return 'break'

text.bind('<MouseWheel>', scrollwheel)

参考链接: http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm

撰写回答