2016-09-15 57 views
1

我試圖創建一個類似這樣的功能:如何填充由QT Designer製作的文本字段?

  1. 從下拉菜單中
  2. 選擇在文本字段填寫與根據用戶預設信息的UI選擇用戶。
  3. 信息寫入Excel電子表格。

我已經完成了第1步和第3步,但我無法弄清楚如何讓步驟1將信息發佈到QT Designer UI的字段中。

class Ui_CheckIn(QtGui.QMainWindow): 
def __init__(self): 
    QtGui.QMainWindow.__init__(self) 
    self.setupUi(self) 

def setupUi(self, CheckIn): 
    self.chkin_reg_descr = QtGui.QLabel(self.CheckIn) 
    self.chkin_reg_descr.setGeometry(QtCore.QRect(10, 340, 111, 21)) 
    self.chkin_reg_descr.setObjectName(_fromUtf8("chkin_reg_descr")) 
    self.chkin_reg_descr_in = QtGui.QLineEdit(self.CheckIn) 
    self.chkin_reg_descr_in.setGeometry(QtCore.QRect(120, 340, 501, 21)) 
    self.chkin_reg_descr_in.setObjectName(_fromUtf8("chkin_reg_descr_in")) 
    self.chkin_reg_asset_in = QtGui.QLineEdit(self.CheckIn) 
    self.chkin_reg_asset_in.setGeometry(QtCore.QRect(400, 310, 221, 20)) 
    self.chkin_reg_asset_in.setObjectName(_fromUtf8("chkin_reg_asset_in")) 
    self.chkin_reg_asset = QtGui.QLabel(self.CheckIn) 
    self.chkin_reg_asset.setGeometry(QtCore.QRect(290, 310, 111, 21)) 
    self.chkin_reg_asset.setObjectName(_fromUtf8("chkin_reg_asset")) 
    self.chkin_reg_serial = QtGui.QLabel(self.CheckIn) 
    self.chkin_reg_serial.setGeometry(QtCore.QRect(10, 310, 71, 21)) 
    self.chkin_reg_serial.setObjectName(_fromUtf8("chkin_reg_serial")) 
    self.chkin_reg_serial_in = QtGui.QLineEdit(self.CheckIn) 
    self.chkin_reg_serial_in.setGeometry(QtCore.QRect(90, 310, 191, 20)) 
    self.chkin_reg_serial_in.setObjectName(_fromUtf8("chkin_reg_serial_in")) 
    self.chkin_reg_submit = QtGui.QPushButton(self.CheckIn) 
    self.chkin_reg_submit.setGeometry(QtCore.QRect(10, 370, 91, 23)) 
    self.chkin_reg_submit.setObjectName(_fromUtf8("chkin_reg_submit")) 
    self.chkin_reg_device_in = QtGui.QLineEdit(self.CheckIn) 
    self.chkin_reg_device_in.setGeometry(QtCore.QRect(80, 280, 211, 20)) 
    self.chkin_reg_device_in.setObjectName(_fromUtf8("chkin_reg_device_in")) 
    self.chkin_drpmn_name = QtGui.QComboBox(self.CheckIn) 
    self.chkin_drpmn_name.setGeometry(QtCore.QRect(70, 250, 221, 22)) 
    self.chkin_drpmn_name.setObjectName(_fromUtf8("chkin_drpmn_name")) 
    self.chkin_drpmn_name.addItem(_fromUtf8("")) 
    self.chkin_drpmn_name.addItem(_fromUtf8("")) 


def retranslateUi(self, CheckIn): 
    self.chkin_reg_submit.setText(_translate("CheckIn", "Check In", None)) 
    self.chkin_reg_descr.setText(_translate("CheckIn", "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600;\">Description:</span></p></body></html>", None)) 
    self.chkin_reg_name.setText(_translate("CheckIn", "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600;\">Name:</span></p></body></html>", None)) 
    self.chkin_reg_device.setText(_translate("CheckIn", "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600;\">Device:</span></p></body></html>", None)) 
    self.chkin_reg_serial.setText(_translate("CheckIn", "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600;\">Serial #:</span></p></body></html>", None)) 
    self.chkin_reg_asset.setText(_translate("CheckIn", "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600;\">Asset Tag #:</span></p></body></html>", None)) 
    self.chkin_new_submit.setText(_translate("CheckIn", "Check In", None)) 
    self.chkin_drpmn_name.setItemText(0, _translate("CheckIn", "User 1", None)) 
    self.chkin_drpmn_name.setItemText(1, _translate("CheckIn", "User 2", None)) 
+1

您需要提供您已經嘗試過的代碼以及發生了什麼錯誤,您的問題尚不清楚(至少對我而言)。如果你的問題不是關於寫入Excel電子表格(正如你所說你已經*覆蓋了它),那麼就不需要在問題中談論這個問題。 – Mike

+0

使用'ui'變量? – thuga

+0

對不起,我添加了更多信息。 –

回答

0

很簡單!您所需要的只是將QComboBoxcurrentTextChanged(QString)信號連接到QLineEditsetText(QString)插槽。

connect(comboBox, SIGNAL(currentTextChanged(QString text)), 
     lineEdit, SLOT(setText(QString text))); 

此連接使您QLineEdit顯示由QComboBox選擇當前項目。

如果您需要在該文本中添加其他內容,則需要實施自己的插槽,該插槽應連接到或的currentTextChanged信號。

+0

您好Frogatto感謝您的意見!我用更多的信息更新了我的最初問題。有可能你可以給我一個我上面發佈的內容的例子嗎?例如,當有人選擇用戶1時,我希望將用戶1的設備,串行,資產標籤和說明添加到QLineEdits中。因此,每個用戶將擁有自己定義的一系列設備序列資產標籤和說明。 –

+0

Frogatto我得到了文本工作,在組合框中選擇的項目的文本出現在lineedit ...我仍然不理解如何將其他文本附加到該組合選擇,然後讓它顯示在特定的lineedit –

+0

Nevermind得到它的工作謝謝。 –