Python 在Tkinter中使用for循环创建和使用小部件(缩放)

Python 在Tkinter中使用for循环创建和使用小部件(缩放),python,tkinter,Python,Tkinter,我目前面临着在Tkinter创建多个(超过20个)音阶的问题,当然我不会“手动”创建和使用它们。 创作作品恰到好处: for ii in range(0,25): nam='input_a' + str(ii) nam = Scale(master, from_=100, to=0, orient=VERTICAL) nam.grid(row=0, column=2+ii) 尝试获取值时出现问题: import numpy as np def Aux(): a=np.zero

我目前面临着在Tkinter创建多个(超过20个)音阶的问题,当然我不会“手动”创建和使用它们。
创作作品恰到好处:

for ii in range(0,25):
  nam='input_a' + str(ii)
  nam = Scale(master, from_=100, to=0, orient=VERTICAL)
  nam.grid(row=0, column=2+ii)
尝试获取值时出现问题:

import numpy as np

def Aux():
  a=np.zeros(25)
  for ii in range(0,25):
    nam='input_a'+str(ii)
    a[ii]=nam.get()
  return a
问题:
nam
仍然是str对象,因此它不能有属性
get



有什么提示吗?谢谢

将天平的参考保存在列表中

nam = []
for ii in range(0,25):
  nam.append(Scale(master, from_=100, to=0, orient=VERTICAL))
  nam[-1].grid(row=0, column=2+ii)

然后可以使用
nam[ii].get()

我发现字典对于存储小部件非常方便,但是如果您只想通过整数索引访问它们,列表也同样可以:

scales = {}
for ii in range(0,25):
    scales[ii] = Scale(...)

这是一个有趣的想法!我只需要整数引用,所以使用列表的解决方案对我来说更智能,但有时我肯定会使用你的。