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_())`
'self.ui.tableView.SetModel(self.model)': 'setModel'ではありませんか? – JonBrave
'create'で作成している' db'オブジェクトはこの関数の中にとどまりますので、クラス内で返り値を代入するか、この関数をクラスメソッドにして、 'self.db = ...' – PRMoureu