我完全是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