2013-08-27 71 views
0

首先 - Noob警報! 我想創建一個使用Python 3.2.3和tkinter的GUI。我需要一個尺寸小部件的「數組」,但不能爲我的生活找出如何返回值,除了一次創建一個小部件,併爲每個由其「命令」調用的函數分別傳遞「 VAR」。 我可以循環小部件的創建位,並根據需要增加行和列參數,但無法弄清楚如何檢索標尺的值。 在「基本」中,每個小部件都有一個索引可用於解決它,但我無法找到類似的東西在Python中的實現方式。 更糟 - 只是一個單一的規模我用:tkinter python3 scale「array」

從Tkinter的進口*

master = Tk() 

w = Scale(master, from_=0, to=100) 
w.pack() 

w = Scale(master, from_=0, to=200, orient=HORIZONTAL) 
w.pack() 

mainloop() 


#To query the widget, call the get method: 

w = Scale(master, from_=0, to=100) 
w.pack() 

print w.get() 

,並得到了響應:

AttributeError: 'NoneType' object has no attribute 'get' 

我假定這是某種版本的問題。

任何援助感激地收到。

回答

0

您確定您使用Python 3嗎?你舉的例子是Python的2 這個簡單的例子使用1個小工具:

from tkinter import * 
master = Tk() 
w = Scale(master, from_=0, to=100,command=lambda event: print(w.get())) 
w.pack() 
mainloop() 

隨着控件數組,你把它們放在一個列表

from tkinter import * 
master = Tk() 
scales=list() 
Nscales=10 
for i in range(Nscales): 
    w=Scale(master, from_=0, to=100) # creates widget 
    w.pack(side=RIGHT) # packs widget 
    scales.append(w) # stores widget in scales list 
def read_scales(): 
    for i in range(Nscales): 
     print("Scale %d has value %d" %(i,scales[i].get())) 
b=Button(master,text="Read",command=read_scales) # button to read values 
b.pack(side=RIGHT) 
mainloop() 

我希望這是你想要的。

JPG

+0

非常感謝 - 這正是我想要的。一個補充問題是你能推薦一本書或其他參考資料/教程來源嗎?我一直受到與Python或Tkinter或tkinter的錯誤版本有關的信息的困擾。 –

+0

我從[http://www.python-course.eu/tkinter_labels.php](http://www.python-course.eu/tkinter_labels.php)開始,但它非常簡單。我不知道任何全面的書或教程。也許別人可以提供更好的建議。 – JPG

+0

再次感謝您的幫助。那個網站對我來說很好 - 「簡單」就是我目前需要的。 –