我完全是PyQt的新手。我有這個項目。我想從我的數據庫中搜索數據,如果它發現它,它會顯示選定的數據到我的QTreeView。我已經有一個查詢可以連接到我的Postgresql數據庫。我的表格例如由pkey,itemcode,description和Quantity組成。我的Gui有一個QLineEdit。在那個QLineEdit中,它會從我的表中搜索ItemCode,當它找到一個項目時,它會自動發送該項目數據到我的QTreeView及其細節。這怎麼可能。我希望你能幫助我。請。從db中提取數據然後傳遞給qtreeview
這裏是我的代碼:
connection.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_())
男人,謝謝你的快速回復。我在哪裏可以發佈我的代碼,以便您可以更正它?非常感謝JDI。 (): – Nethan 2012-07-25 07:04:19
這是我的connection.py def createConnection(): db = QSqlDatabase.addDatabase(「QPSQL」); db.setHostName( 「localhost」 的) db.setPort(5432) db.setDatabaseName( 「posdb」) db.setUserName( 「nethanjavier」) db.setPassword( 「猜」) 如果沒有db.open( ): QtGui.QMessageBox.Warning(None,「Test」,QtCore.QString(「Database Error:%1」)。arg(db.lastError()。text())) sys.exit(1) ok =我connection.py 高清sqlquery的db.open() – Nethan 2012-07-25 07:11:48
延續(): 查詢= QSqlQuery(DB) query.prepare( 「選擇itemcode,描述,SRP,從項目大桶其中itemcode =:itemcode;」) ; () if query.next(): itemcode = query.value(0).toInt() description = query.value(1).toString() srp = query.value(2).toInt() vat =查詢。價值(3).toInt() query.bindvalue(「:itemcode」,QtCore.QVariant(itemcode)) query.exec_() return True – Nethan 2012-07-25 07:12:18