在Spinbox Tk Python中启用鼠标滚轮

时间:2016-07-12 13:15:53

标签: python user-interface tk

我想知道是否有一种智能方法可以在Tk小部件中启用鼠标滚轮' Spinbox'在Python中。

我到目前为止找到的唯一明智的解决方案是派生出一个具有所需功能的新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')

但鉴于这可能是预期的行为,我怀疑有更好的解决方案。

0 个答案:

没有答案