好的,我修复了它,确保用Model()
调用该类但是,以下代码不起作用,并且由于某种原因导致段错误。我通过将DB和模型的东西直接放入主GUI类来修复它。
我有一个名为table的Ui元素,代码如下:
import sqlite3
from PyQt4 import QtCore
from PyQt4 import QtGui
from PyQt4 import QtSql
from PyQt4.Qt import *
from ui.mainWindow import *
class Database(QtSql.QSqlDatabase) :
def __init__(self, parent = None):
super(Database, self).__init__(parent)
self.addDatabase("QSQLITE")
self.setDatabaseName('/db/daily.sql')
self.open()
class Model(QtSql.QSqlTableModel):
def __init__(self, parent = None, db=Database()):
super(Model, self).__init__(parent)
self.setTable('body')
self.select()
class Gui(QtGui.QMainWindow):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self,parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.tableModel = Model()
self.ui.table.setModel(self.tableModel)
self.ui.table.show()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = Gui()
myapp.show()
sys.exit(app.exec_())
并收到以下错误:
TypeError:QTableView.setModel(QAbstractItemModel):参数1具有意外类型' PyQt4.QtCore.pyqtWrapperType'
如果我直接在Gui类中设置数据库和模型,程序会启动,但表是空的(填充了DB)。
导致此错误的原因是什么?