0
我忙於一個大學項目,我需要創建一個SQL數據庫並能夠通過Python和PyQT中創建的程序處理數據。無法使用QTableView在PyQT應用程序中顯示來自MySQL的信息
我已經創建了數據庫,表中添加了表格和一些數據,但是現在我需要使用QTableView
小部件來顯示數據,並且當我運行它時,我只是得到一個空白窗口。
我注意到,如果我將諸如用戶名,密碼或數據庫名稱等細節更改爲隨機的東西,我仍然會得到相同的結果,這告訴我沒有發生與數據庫的連接。
有人可以看看我的代碼,並協助?即使只是一些建議,以獲得錯誤消息?
from __future__ import division
import sys
from PyQt4 import QtCore, QtGui, QtSql
from showrec import*
def createConnection():
db=QtSql.QSqlDatabase.addDatabase('QMYSQL')
db.setHostName('localhost')
db.setDatabaseName('database')
db.setUserName('username')
db.setPassword('password')
db.open()
print(db.lastError().text())
return True
class MyForm(QtGui.QDialog):
def _init_(self,parent=None):
QtGui.QWidget._init_(self,parent)
self.ui=Ui_Dialog()
self.ui.setp.Ui(self)
self.model=QtSQL.QSqlTableModel(self)
self.Model.SetTable("table1")
self.Model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)
self.model.select()
self.ui.tableView.SetModel(self.model)
if __name__ == "__main__":
app=QtGui.QApplication(sys.argv)
if not createConnection():
sys.exit(1)
myapp=MyForm()
myapp.show()
sys.exit(app.exec_())`
'self.ui.tableView.SetModel(self.model)':是不是'setModel'? – JonBrave
你在'createConnection'中創建的db對象停留在這個函數中,你可能需要返回並在你的類中賦值,或者使這個函數成爲一個類方法,並使用'self.db = ...' – PRMoureu