2015-02-08 31 views
-1

我打算創建一種定時器,其中的spinbox將用於允許用戶調整定時器設置。然而,不斷點擊箭頭按鈕來遞增/遞減數值將是非常煩人的。是否有可能允許用戶修改Python tkinter中的spinxbox值?

這是我目前正在處理的代碼。

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函數做什麼,以及綁定spinbox的命令。

+1

是的,這是可能的。向我們展示一個完整的工作示例,說明您遇到的問題,也許我們可以提供幫助。 – 2015-02-08 13:43:21

+0

@BryanOakley我用當前的代碼更新了原始文章。 Tbh我很迷茫,因爲如何去編寫代碼。仍在學習如何使用tkinter。 – Deculsion 2015-02-08 14:09:15

回答

0

最簡單的方法是讓事件調用按鈕按下。你可以寫你的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 
相關問題