2017-09-14 8 views
0

私はSQLデータベースを作成し、PythonとPyQTで作成したプログラムでデータを処理する必要がある大学プロジェクトに忙しかったです。QtableViewを使用してMySQLの情報をPyQTアプリケーションに表示できません

データベースを作成してテーブルにデータを追加しましたが、今度は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

'create'で作成している' db'オブジェクトはこの関数の中にとどまりますので、クラス内で返り値を代入するか、この関数をクラスメソッドにして、 'self.db = ...' – PRMoureu

答えて

0

OK。私は前とinitの代わり の後に_ 1唯一の場所私のミス を発見したデフのinit(自己、親=なし):

の代わり: DEF のinit(自己、親=なし):

愚かな間違いだけど、私は何時間も忙しかった。 応答JonBraveをありがとう

関連する問題