我有一个程序可以根据用户输入创建许多 qlineedits 和按钮:
在点击灰色的“下一步”按钮后,在上面的图像中添加了 4 行按钮。现在,我想在单击相应按钮时将用户的输入输入到函数中(单击“创建镜头 1!--> 转到将“exShot1”作为参数传递的函数)。
问题是我不知道在循环中创建每个 qline 和按钮时如何获取它们的名称。我想我可以在循环中创建唯一变量,但这感觉不对。我尝试过使用setObjectName
,但我不知道如何使用它来调用文本。我还对 Lamdba 进行了不成功的尝试(我觉得这可能是正确的方法)我相信这是必须获取名称和跟踪用户输入更改时的组合。
我已经尝试过了textChanged
,我让它在循环的最后一个条目上工作,但不适用于其他 qlines 和按钮)
相关代码:
while i <= int(seqNum):
#create each widget
self.createShotBtn = QtGui.QPushButton("Create Shot %s!" %str(self.shotNumberLst[i-1]))
self.labelName = QtGui.QLabel(self)
self.labelName.setText("Enter Name Of Shot %s!" %str(self.shotNumberLst[i-1]))
self.shotName = QtGui.QLineEdit(self)
self.shotName.setObjectName("shot"+str(i))
#add widget to layout
self.grid.addWidget(self.labelName, 11+shotjump,0)
self.grid.addWidget(self.shotName,11+shotjump,1)
self.grid.addWidget(self.createShotBtn, 11+shotjump,2)
#Press button that makes magic happen
self.createShotBtn.clicked.connect(???)
i += 1
编辑:如果用户在所有行上输入输入并按下一个按钮将所有这些输入作为列表或字典传递(每个“镜头”将添加更多行),那也很好