我完全是 PyQt 的新手。我想到了这个项目。我想从我的数据库中搜索数据,如果找到它,它会将所选数据显示到我的 QTreeView。我已经有一个可以连接到我的 Postgresql 数据库的查询。例如,我的表由 pkey、itemcode、description 和 Quantity 组成。我的 Gui 中有一个 QLineEdit。在那个 QLineEdit 中,它将从我的表中搜索 ItemCode,当它找到一个项目时,它会自动将该项目数据及其详细信息发送到我的 QTreeView。这怎么可能。我希望你能帮助我。请。
这是我的代码:
连接.py
def createConnection(db):
db = QSqlDatabase.addDatabase("QPSQL");
db.setHostName("localhost")
db.setPort(5432)
db.setDatabaseName("posdb")
db.setUserName("username")
db.setPassword("password")
if not db.open():
QtGui.QMessageBox.Warning(None,"Test", QtCore.QString("Database Error: %1").arg(db.lastError().text()))
sys.exit(1)
ok = db.open()
def sqlquery():
query = QSqlQuery(db)
query.prepare("Select itemcode, description, srp, vat from items Where itemcode=:itemcode;");
if query.next():
itemcode = query.value(0).toInt()
description = query.value(1).toString()
srp = query.value(2).toInt()
vat = query.value(3).toInt()
query.bindvalue(":itemcode", QtCore.QVariant(itemcode))
query.exec_()
return True
在我的 baseui.ui 中,我将它转换为 .py,然后在那里,它有 QLineEdit,我如何在我的 main.py 中使用它?就像把它称为函数一样。再次感谢 JDI。
这是我的 main.py
import baseui,connection
from baseui import Ui_Dialog
from connection import createConnection
class PosForm(QtGui.QWidget):
def __init__(self,parent=None):
super(PosForm,self).__init__(parent)
self.ui = baseui()
self.ui.setupUi(self)
lineedit = QLineEdit(self.ui)
selectitem = lineedit.toInt
def initializeModel(model):
model = QSqlTableModel()
model.setTable('items')
model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)
model.select()
def view(model):
view = QTableView()
view.setModel(model)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
model = QtSql.QSqlTableModel()
initializeModel(model)
view = PosForm()
view.show()
sys.exit(app.exec_())