def __init__(self, parent): super(QtGui.QWidget, self).__init__(parent) self.setObjectName("tabProducts") mainLayout = QtGui.QHBoxLayout() vLayoutLeft = QtGui.QVBoxLayout() self.tableWidget = ProductTable(self) self.tableWidget.setGeometry(QtCore.QRect(320, 20, 261, 231)) vLayoutLeft.addWidget(self.tableWidget) mainLayout.addLayout(vLayoutLeft) vLayoutRight = QtGui.QVBoxLayout() hLayoutSN = QtGui.QHBoxLayout() self.label_sn = QtGui.QLabel(self) hLayoutSN.addWidget(self.label_sn) self.lineEdit_sn = QtGui.QLineEdit(self) self.lineEdit_sn.setGeometry(QtCore.QRect(80, 0, 113, 20)) hLayoutSN.addWidget(self.lineEdit_sn) vLayoutRight.addLayout(hLayoutSN) hLayoutBrand = QtGui.QHBoxLayout() self.label_brand = QtGui.QLabel(self) hLayoutBrand.addWidget(self.label_brand) self.lineEdit_brand = QtGui.QLineEdit(self) self.lineEdit_brand.setGeometry(QtCore.QRect(80, 0, 113, 20)) hLayoutBrand.addWidget(self.lineEdit_brand) vLayoutRight.addLayout(hLayoutBrand) hLayoutPrice = QtGui.QHBoxLayout() self.label_price = QtGui.QLabel(self) hLayoutPrice.addWidget(self.label_price) self.lineEdit_price = QtGui.QLineEdit(self) self.lineEdit_price.setGeometry(QtCore.QRect(80, 0, 113, 20)) hLayoutPrice.addWidget(self.lineEdit_price) vLayoutRight.addLayout(hLayoutPrice) self.label_image = QtGui.QLabel(self) vLayoutRight.addWidget(self.label_image) self.label_msg = QtGui.QLabel(self) vLayoutRight.addWidget(self.label_msg) hLayoutCmd = QtGui.QHBoxLayout() self.pushButtonUpdate = QtGui.QPushButton(self) self.pushButtonUpdate.setGeometry(QtCore.QRect(210, 0, 75, 23)) hLayoutCmd.addWidget(self.pushButtonUpdate) self.pushButtonDel = QtGui.QPushButton(self) self.pushButtonDel.setGeometry(QtCore.QRect(210, 0, 75, 23)) hLayoutCmd.addWidget(self.pushButtonDel) vLayoutRight.addLayout(hLayoutCmd) mainLayout.addLayout(vLayoutRight) self.setLayout(mainLayout) self.retranslateUi() self.tableWidget_selectionChanged() QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL("selectionChanged()"), self.tableWidget_selectionChanged) QtCore.QObject.connect(self.pushButtonUpdate, QtCore.SIGNAL("pressed()"), self.doCmdUpdate) QtCore.QObject.connect(self.pushButtonDel, QtCore.SIGNAL("pressed()"), self.doCmdDel)
class ProductsWidget(QtGui.QWidget): def __init__(self, parent): super(QtGui.QWidget, self).__init__(parent) self.setObjectName("tabProducts") mainLayout = QtGui.QHBoxLayout() vLayoutLeft = QtGui.QVBoxLayout() self.tableWidget = ProductTable(self) self.tableWidget.setGeometry(QtCore.QRect(320, 20, 261, 231)) vLayoutLeft.addWidget(self.tableWidget) mainLayout.addLayout(vLayoutLeft) vLayoutRight = QtGui.QVBoxLayout() hLayoutSN = QtGui.QHBoxLayout() self.label_sn = QtGui.QLabel(self) hLayoutSN.addWidget(self.label_sn) self.lineEdit_sn = QtGui.QLineEdit(self) self.lineEdit_sn.setGeometry(QtCore.QRect(80, 0, 113, 20)) hLayoutSN.addWidget(self.lineEdit_sn) vLayoutRight.addLayout(hLayoutSN) hLayoutBrand = QtGui.QHBoxLayout() self.label_brand = QtGui.QLabel(self) hLayoutBrand.addWidget(self.label_brand) self.lineEdit_brand = QtGui.QLineEdit(self) self.lineEdit_brand.setGeometry(QtCore.QRect(80, 0, 113, 20)) hLayoutBrand.addWidget(self.lineEdit_brand) vLayoutRight.addLayout(hLayoutBrand) hLayoutPrice = QtGui.QHBoxLayout() self.label_price = QtGui.QLabel(self) hLayoutPrice.addWidget(self.label_price) self.lineEdit_price = QtGui.QLineEdit(self) self.lineEdit_price.setGeometry(QtCore.QRect(80, 0, 113, 20)) hLayoutPrice.addWidget(self.lineEdit_price) vLayoutRight.addLayout(hLayoutPrice) self.label_image = QtGui.QLabel(self) vLayoutRight.addWidget(self.label_image) self.label_msg = QtGui.QLabel(self) vLayoutRight.addWidget(self.label_msg) hLayoutCmd = QtGui.QHBoxLayout() self.pushButtonUpdate = QtGui.QPushButton(self) self.pushButtonUpdate.setGeometry(QtCore.QRect(210, 0, 75, 23)) hLayoutCmd.addWidget(self.pushButtonUpdate) self.pushButtonDel = QtGui.QPushButton(self) self.pushButtonDel.setGeometry(QtCore.QRect(210, 0, 75, 23)) hLayoutCmd.addWidget(self.pushButtonDel) vLayoutRight.addLayout(hLayoutCmd) mainLayout.addLayout(vLayoutRight) self.setLayout(mainLayout) self.retranslateUi() self.tableWidget_selectionChanged() QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL("selectionChanged()"), self.tableWidget_selectionChanged) QtCore.QObject.connect(self.pushButtonUpdate, QtCore.SIGNAL("pressed()"), self.doCmdUpdate) QtCore.QObject.connect(self.pushButtonDel, QtCore.SIGNAL("pressed()"), self.doCmdDel) def retranslateUi(self): self.label_sn.setText(QtGui.QApplication.translate("MainWindow", "代码", None, QtGui.QApplication.UnicodeUTF8)) self.label_price.setText(QtGui.QApplication.translate("MainWindow", "单价", None, QtGui.QApplication.UnicodeUTF8)) self.label_brand.setText(QtGui.QApplication.translate("MainWindow", "品牌", None, QtGui.QApplication.UnicodeUTF8)) self.label_image.setText( QtGui.QApplication.translate("MainWindow", "图片没找到", None, QtGui.QApplication.UnicodeUTF8) ) self.pushButtonUpdate.setText( QtGui.QApplication.translate("MainWindow", "更新", None, QtGui.QApplication.UnicodeUTF8) ) self.pushButtonDel.setText( QtGui.QApplication.translate("MainWindow", "删除", None, QtGui.QApplication.UnicodeUTF8) ) def tableWidget_selectionChanged(self): print("called tblWidget_selectionChanged") row = self.tableWidget.currentRow() if row >= 0: sn = str(self.tableWidget.item(row, 0).text()) print(sn) p = Product.query.filter_by(sn=sn).one() if p is None: self.label_msg = "did not found." else: self.lineEdit_sn.setText(sn) self.lineEdit_brand.setText(p.brand) self.lineEdit_price.setText("%.02f" % (p.price)) self.label_image.setPixmap(QtGui.QPixmap("image/%s.jpg" % (sn))) def doCmdUpdate(self): print("called doCmdUpdate") sn = str(self.lineEdit_sn.text()) p = Product.get_by(sn=sn) if p is None: price = float(self.lineEdit_price.text()) brand = unicode(self.lineEdit_brand.text()) Product(sn=sn, brand=brand, price=price) session.commit() self.label_msg.setText( QtGui.QApplication.translate("MainWindow", "产品添加成功", None, QtGui.QApplication.UnicodeUTF8) ) else: p.sn = sn p.brand = unicode(self.lineEdit_brand.text()) p.price = float(self.lineEdit_price.text()) session.commit() self.label_msg.setText( QtGui.QApplication.translate("MainWindow", "产品更新成功", None, QtGui.QApplication.UnicodeUTF8) ) self.tableWidget.query() def doCmdDel(self): print("called doCmdDel") sn = str(self.lineEdit_sn.text()) p = Product.get_by(sn=sn) if p is None: self.label_msg.setText( QtGui.QApplication.translate("MainWindow", "没有找到该产品", None, QtGui.QApplication.UnicodeUTF8) ) else: p.delete() session.commit() self.label_msg.setText( QtGui.QApplication.translate("MainWindow", "产品删除成功", None, QtGui.QApplication.UnicodeUTF8) ) self.tableWidget.query()