def _inittablewidget(self): headerLabels=[u'行号', u'物料编号', u'物料名称', u'内玉', u'材质',u'颜色',u'单位', u'单价', u'数量', u'总金额', u'交货日期', u'备注'] headerLabelsWidth=[40, 100, 150, 80, 160, 160, 60, 100, 100, 80, 100] self.tableWidget.setColumnCount(len(headerLabels)) self.tableWidget.setHorizontalHeaderLabels(headerLabels) for i in range(len(headerLabelsWidth)): self.tableWidget.setColumnWidth(i, headerLabelsWidth[i]) self.tableWidget.horizontalHeader().setStretchLastSection(True) querydetail=QSqlQuery() querydetail.prepare(u"SELECT `行号`, `物料编号`, `物料名称`, `内玉`, `材质`,`颜色`,`单位`, `单价`, `数量`, `交货日期`, `备注` FROM sodetail WHERE `销售订单`=? ") querydetail.bindValue(0, self.soid) if querydetail.exec_()==True: row=0 while querydetail.next(): self.tableWidget.insertRow(row) for j in range(self.tableWidget.columnCount()): self.tableWidget.setItem(row, j,QTableWidgetItem("") ) self.tableWidget.item(row, 0).setText(querydetail.value(0).toString()) productid=socomboBox(self.tableWidget, row) productid.setEditText(querydetail.value(1).toString()) self.tableWidget.setCellWidget(row,1, productid ) self.tableWidget.item(row, 2).setText(querydetail.value(2).toString()) self.tableWidget.item(row, 3).setText(querydetail.value(3).toString()) self.tableWidget.item(row, 4).setText(querydetail.value(4).toString()) self.tableWidget.item(row, 5).setText(querydetail.value(5).toString()) self.tableWidget.item(row, 6).setText(querydetail.value(6).toString()) doublevalidator=QDoubleValidator(-10000000.0,99999999.0 , 4) double_validator=QDoubleValidator(0, 100000000.0, 2) lineEdit_quantity=GQLineEdit() lineEdit_price=GQLineEdit() lineEdit_price.setText(querydetail.value(7).toString()) lineEdit_quantity.setText(querydetail.value(8).toString()) lineEdit_price.setFrame(False) lineEdit_quantity.setFrame(False) lineEdit_quantity.setValidator(double_validator) lineEdit_price.setValidator(doublevalidator) self.tableWidget.setCellWidget(row, 8, lineEdit_quantity) self.tableWidget.setCellWidget(row, 7, lineEdit_price) lineEdit_price.editingFinished.connect(self.finishedPrice) lineEdit_quantity.editingFinished.connect(self.finishedQuantity) initialamount=querydetail.value(8).toDouble()[0]*querydetail.value(7).toDouble()[0] self.tableWidget.item(row, 9).setText(str(initialamount)) deliveryDate=QDateEdit() deliveryDate.setFrame(False) deliveryDate.setDate(self.dateEdit_orderDelieve.date()) deliveryDate.setCalendarPopup(True) self.tableWidget.setCellWidget(row, 10, deliveryDate) self.tableWidget.item(row, 11).setText(querydetail.value(10).toString()) self.cellWidgets.append([self.tableWidget.item(row, 0), productid,lineEdit_price,lineEdit_quantity , deliveryDate , self.tableWidget.item(row, 11)]) row+=1 self.insertCountLine()
def insertNewRow(self, row): if row!=0: largestItemNo=(int(self.cellWidgets[len(self.cellWidgets)-1][0].text())/10+1)*10 else: largestItemNo=10 self.tableWidget.insertRow(row) currentItem=QTableWidgetItem(str(largestItemNo)) self.tableWidget.setItem(row, 0, currentItem)#设置行项号 for j in range(1, self.tableWidget.columnCount()): self.tableWidget.setItem(row, j,QTableWidgetItem("") ) productid=socomboBox(self.tableWidget, row) self.tableWidget.setCellWidget(row,1, productid ) doublevalidator=QDoubleValidator(-10000000.0,99999999.0 , 4) double_validator=QDoubleValidator(0, 100000000.0, 2) lineEdit_quantity=GQLineEdit() lineEdit_price=GQLineEdit() lineEdit_price.setFrame(False) lineEdit_quantity.setFrame(False) lineEdit_quantity.setValidator(double_validator) lineEdit_price.setValidator(doublevalidator) self.tableWidget.setCellWidget(row, 8, lineEdit_quantity) self.tableWidget.setCellWidget(row, 7, lineEdit_price) lineEdit_price.editingFinished.connect(self.finishedPrice) lineEdit_quantity.editingFinished.connect(self.finishedQuantity) self.tableWidget.setItem(row, 9, QTableWidgetItem("")) deliveryDate=QDateEdit() deliveryDate.setFrame(False) deliveryDate.setDate(self.dateEdit_orderDelieve.date()) deliveryDate.setCalendarPopup(True) self.tableWidget.setCellWidget(row, 10, deliveryDate) lineEdit_remark=QLineEdit() lineEdit_remark.setFrame(False) self.tableWidget.setCellWidget(row, 11, lineEdit_remark) self.cellWidgets.append([currentItem, productid,lineEdit_price,lineEdit_quantity , deliveryDate , lineEdit_remark])