【问题标题】:Is it possible to allow users to modify spinxbox value in Python tkinter?是否可以允许用户在 Python tkinter 中修改 spinxbox 值?
【发布时间】:2015-02-08 13:37:34
【问题描述】:

我打算创建一种计时器,其中旋转框将用于允许用户调整计时器设置。但是,一直必须单击箭头按钮来增加/减少值会很烦人。

这是我目前正在处理的代码。

from tkinter import *
import time


class mainmenu():
    def __init__(self, parent,NumDocks):
        self.Container = Frame(parent,width = 64,height = 20)
        self.Container.bind_all("<MouseWheel>", self.onMouseWheel)

        self.Title = Label(self.Container,text = "Kantai Manager",font = ("Arial", '20'))
        self.Title.pack()

        self.Docks = []
        self.DockTimeSelect = []
        for i in range(NumDocks):
            self.Docks.append(Frame(self.Container))
            self.Docks[i].pack()

            CurrentDock = Label(self.Docks[i],text = "Dock {}".format(i+1))
            CurrentDock.pack(side = 'left')

            CurrentDockTimer = Spinbox(self.Docks[i], from_=0,to=60,increment = 1)
            CurrentDockTimer.pack(side='left')

        self.Container.pack()

    def onMousewheel(self,event):
        pass

root = Tk()
root
mainmenu(root,2)
root.mainloop()

我不太确定如何处理 onMousewheel 函数以及绑定旋转框的命令。

【问题讨论】:

  • 是的,有可能。向我们展示一个完整的工作示例,说明您遇到的问题,也许我们可以提供帮助。
  • @BryanOakley 我已经用我当前的代码更新了原始帖子。 Tbh 我对如何为此编写代码感到非常迷茫。仍在学习如何使用 tkinter。

标签: python python-3.x tkinter


【解决方案1】:

最简单的方法是让事件调用按钮按下。您可以编写 onMouseWheel 函数,如:

def onMouseWheel(self, event):
    if event.delta > 0: # Check if the user scrolls up (positive) or down (negative)
        event.widget.invoke('buttonup')   # Invoke a press of the up button
    else:
        event.widget.invoke('buttondown') # Invoke a press of the down button

【讨论】:

    猜你喜欢
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 2011-02-24
    相关资源
    最近更新 更多