PyQt:尝试在QTableView中显示SQLite DB:'参数1具有意外类型' PyQt4.QtCore.pyqtWrapperType'

时间:2014-06-28 09:08:58

标签: python sqlite pyqt4

好的,我修复了它,确保用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)。

导致此错误的原因是什么?

0 个答案:

没有答案