2017-12-13 15 views
-1

だから私は見て、このメソッドにいくつかの異なる解決策を試してみましたが、私はそれが働いていないことがわかりました。これまでのところ私は、次のしている:Python:Spinboxの値を関数

#Variables 
countmin = IntVar() 


#Functions 

#Used to Determine the customisable counter as well as general time management 
#Should be noted 59 seconds is used because function begins counting every second at 00 instead of 01 
def timecount(minutes): 
    start = time.time() 
    time.clock()  
    sec_elapsed = 0 
    min_elapsed = 0 
    while min_elapsed < minutes: 
     sec_elapsed = time.time() - start 
     print("minutes count:",min_elapsed,"loop cycle time: %f, seconds count: %02d" % (time.clock() , sec_elapsed)) 
     time.sleep(1) 
     if sec_elapsed > 59: 
      min_elapsed = +1 
      start = time.time() 

def startquiz(): 
    timecount(int(sbcount.get())) 

以降、私はここでそれを参照:

sbcount = Spinbox(tab1, from_ = 1, to = 20, textvariable = countmin).pack() 
countmin.get() 



btquiz = ttk.Button(tab1, text = "Error") 
btquiz.config(text = "Begin Quiz", compound = CENTER, command = startquiz) 
btquiz.pack() 

そして今、Imは、次の問題

File "C:\Users\BugZ\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 1699, in __call__ 
    return self.func(*args) 
    File "C:\SDD\TKinter Project\Quiz Application.py", line 38, in startquiz 
    timecount(int(sbcount.get())) 
AttributeError: 'NoneType' object has no attribute 'get' 

に実行している誰かがどのように示すことができた場合スピンボックスの値を取得し、その値を関数に参照することになります。非常に高く評価されます:)コーディングで非常に非常に新しいので、申し訳ありませんが、私の用語が少しずれています。

答えて

0

packは、副作用を生成し、Noneを返し、多分試してみてください。

sbcount = Spinbox(tab1, from_ = 1, to = 20, textvariable = countmin) 
sbcount.pack()