0
我創建了一個佈局,一旦我將它分配到列表中,但是爲了創建一個用戶,我需要線編輯和comboxes中的值,但是會自動添加標籤和lineedits你可以看到我已經設置了每個對象名稱,我如何訪問我的tryCreateUser()函數中的所有值?正如你可以看到我通過打印編輯檢查,但只是給了我最後一個對象!提前感謝您的幫助!Pyqt4在創建動態表單時訪問對象
def addNewUser(self):
def tryCreateUser():
print(edit)
self.deleteLayout(self.dynamicFrame.layout())
grid = QtGui.QGridLayout()
grid.setSpacing(10)
row = 1
column = 1
edit = ['First Name', 1, 'Last Name', 1, 'Date of Birth', 2, '', 'Gender', 3, 'Access Level', 4, 'Password', 5, 'Verify Password', 5]
for item in edit:
if item == '':
self.dob = QtGui.QLabel()
grid.addWidget(self.dob, 3, 3)
column -= 1
else:
if item == 1:
edit = QtGui.QLineEdit()
elif item == 2:
edit = QtGui.QPushButton('Choose')
edit.clicked.connect(self.openCal)
elif item == 3:
edit = QtGui.QComboBox()
edit.addItem('Male')
edit.addItem('Female')
elif item == 4:
edit = QtGui.QComboBox()
edit.addItem('General Staff')
edit.addItem('Stock Admin')
edit.addItem('Manager')
elif item == 5:
edit = QtGui.QLineEdit()
edit.setEchoMode(QtGui.QLineEdit.Password)
else:
edit = QtGui.QLabel(item)
edit.setObjectName(str(item))
grid.addWidget(edit, row, column)
if column >= 2:
column = 1
row += 1
else:
column += 1
createButton = QtGui.QPushButton("Create User")
createButton.clicked.connect(tryCreateUser)
cancelButton = QtGui.QPushButton("Cancel")
cancelButton.clicked.connect(self.populateUser)
grid.addWidget(createButton, row , column)
grid.addWidget(cancelButton, row, (column+1))
self.dynamicFrame.setLayout(grid)
謝謝!這樣可行! – Inthuson 2015-01-31 20:25:11