说我有一个充满参数的词典:
{speed = 1, intelligence = 3, dexterity = 2}
我想调用一个循环,为程序中的每个项目创建Label
和SpinBox
,以防我以后想要添加更多属性。我可以创建窗口并返回更新的值就好了。我唯一的问题是我想要创建所有小部件,无论我有7或20个属性要编辑。
因此标签对象可以被称为speed_Label
和智能标签对象intelligence_Label
,而包含速度值的spinbox将是speed_SpinBox
等等,然后我可以通过轻松回来。但是,这个
a)看起来很差的命名练习
b)看起来很难看,因为我无法找到如何在程序上给出对象名称,比如说
for KEY in dict.keys(): # say the KEY is "Speed"
# this would produce a Label object called Speed_Label
# which displays the text "Speed"
"KEY" + "_Label" = QLabel("KEY")
答案 0 :(得分:3)
为什么不简单地使用列表或词典?
这样的事情应该有效:
widgets = {}
form = QFormLayout()
for key, value in your_dict.iteritems():
widgets[key] = widget = {}
widget['spinbox'] = spinbox = QSpinBox()
spinbox.setValue(value)
form.addRow(key, spinbox)