如何创建一个;数组";使用Python创建多个tkinter Scale小部件的功能?

如何创建一个;数组";使用Python创建多个tkinter Scale小部件的功能?,python,tkinter,widget,tkinter-scale,Python,Tkinter,Widget,Tkinter Scale,我正在尝试使用Python 3.2.3和tkinter模块创建GUI。我需要一个Scale小部件的“数组”,但我一辈子都不知道如何返回值,除非一次创建一个Scale小部件,并为通过var的命令调用的每个小部件使用单独的函数 我可以循环小部件创建位,并根据需要增加行和列参数,但不知道如何检索Scale小部件的值 在“Basic”中,每个小部件都有一个索引,可以用来处理它,但我找不到类似的东西是如何在Python中实现的。更糟糕的是,仅使用一个Scale小部件,我就使用了: from Tkinter

我正在尝试使用Python 3.2.3和
tkinter
模块创建GUI。我需要一个
Scale
小部件的“数组”,但我一辈子都不知道如何返回值,除非一次创建一个
Scale
小部件,并为通过
var
命令调用的每个小部件使用单独的函数

我可以循环小部件创建位,并根据需要增加行和列参数,但不知道如何检索
Scale
小部件的值

在“Basic”中,每个小部件都有一个索引,可以用来处理它,但我找不到类似的东西是如何在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()
得到的答复是:


我假设这是某种版本问题。

您确定使用的是Python 3吗?您的示例是Python2。 此简单示例适用于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 3吗?您的示例是Python2。 此简单示例适用于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或Tkinter或Tkinter的错误版本的信息所困扰。我不知道任何全面的书或教程。也许其他人可以给你一个更好的建议。再次感谢你,你帮了我很大的忙。那个网站看起来不错,我现在需要的是“简单”。非常感谢,这正是我想要的。一个补充问题是,你能推荐一本书或其他参考/教程来源吗?我一直被有关Python或Tkinter或Tkinter的错误版本的信息所困扰。我不知道任何全面的书或教程。也许其他人可以给你一个更好的建议。再次感谢你,你帮了我很大的忙。那个网站看起来不错,我现在需要的是“简单”。