我正在尝试使用Python 3.2.3和tkinter
模块创建GUI。我需要一个Scale
小部件的“数组”,但是我一生无法解决如何返回值,除非一次创建一个Scale
小部件并为每个由其关键字参数传递command
。
我可以循环窗口小部件创建位并根据需要增加行和列参数,但无法弄清楚如何检索var
小部件的值。
在“基本”中,每个小部件都有一个可用于解决它的索引,但是我找不到在Python中如何实现类似的功能。更糟糕的是,仅使用一个Scale
小部件,我就使用了:
from Tkinter import *
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'
我假设这是某种版本的问题。
最佳答案
您确定使用的是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格式
关于python - 如何使用Python创建多个tkinter Scale小部件的“数组”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18471886/