2

假设我有一本充满参数的字典:

{speed = 1, intelligence = 3, dexterity = 2}

我想调用一个循环,以程序方式为该列表中的每个项目创建一个Label和一个SpinBox,以防我以后想添加更多属性。我可以创建窗口并返回更新的值就好了。我唯一的问题是我希望根据需要创建所有小部件,无论我有 7 个或 20 个属性要编辑。

所以可以调用标签对象,speed_Label智能标签对象intelligence_Label,包含速度值的旋转框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")
4

1 回答 1

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)
于 2012-06-14T00:41:12.187 回答