私は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_())