无法使用QTableView在PyQT应用程序中显示来自MySQL的信息
问题描述:
我忙于一个大学项目,我需要创建一个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_())`
答
好的。我发现我的错误 我把只有一个_之前和之后的init,而不是 高清初始化(自我,父母=无):
代替: 高清初始化(自我,父母=无):
愚蠢的错误,但让我忙了几个小时。 感谢您的回复JonBrave
'self.ui.tableView.SetModel(self.model)':是不是'setModel'? – JonBrave
你在'createConnection'中创建的db对象停留在这个函数中,你可能需要返回并在你的类中赋值,或者使这个函数成为一个类方法,并使用'self.db = ...' – PRMoureu