我想知道是否有一种聪明的方法可以在 Python 中的 Tk 小部件"Spinbox"中启用鼠标滚轮。
到目前为止,我发现的唯一明智的解决方案是派生一个具有所需功能的新 spinbox 类:
class Spinbox(tk.Spinbox):
def __init__(self, *args, **kwargs):
tk.Spinbox.__init__(self, *args, **kwargs)
self.bind('<MouseWheel>', self.mouseWheel)
self.bind('<Button-4>', self.mouseWheel)
self.bind('<Button-5>', self.mouseWheel)
def mouseWheel(self, event):
if event.num == 5 or event.delta == -120:
self.invoke('buttondown')
elif event.num == 4 or event.delta == 120:
self.invoke('buttonup')
但鉴于这可能是预期的行为,我怀疑有更好的解决方案。
对于后代,如果你能负担得起,ttk.Spinbox
内置鼠标滚轮滚动支持。