2016-09-15 51 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得到它的工作谢谢。 –