2017-09-14 82 views
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_())` 
+0

'self.ui.tableView.SetModel(self.model)':是不是'setModel'? – JonBrave

+0

你在'createConnection'中創建的db對象停留在這個函數中,你可能需要返回並在你的類中賦值,或者使這個函數成爲一個類方法,並使用'self.db = ...' – PRMoureu

回答

0

好的。我發現我的錯誤 我把只有一個_之前和之後的init,而不是 高清初始化(自我,父母=無):

代替: 高清初始化(自我,父母=無):

愚蠢的錯誤,但讓我忙了幾個小時。 感謝您的回覆JonBrave

相關問題