from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtSql import *
import sys
class Test(QMainWindow):
def __init__(self):
super().__init__()
self.create()
def create(self):
self.db = QSqlDatabase.addDatabase('SQLITE')
self.db.setDatabaseName('management.db')
self.db.open()
self.x()
self.layout =QVBoxLayout()
self.layout.addWidget(self.table_view)
self.widget=QWidget()
self.widget.setLayout(self.layout)
self.setCentralWidget(self.widget)
def x(self):
self.model = QSqlTableModel()
self.model.setEditStrategy(QSqlTableModel.OnManualSubmit)
self.model.setTable("management")
self.table_view=QTableView()
self.table_view.setModel(self.model)
self.table_view.model().select()
self.table_view.show()
ap = QApplication(sys.argv)
wi = Test()
wi.show()
wi.raise_()
ap.exec_()
上面的代码是一个简单的对象,我打算创建一个窗口来查看我的数据库的内容。但它产生的只是一个空白的白盒子。谢谢!
数据库中包含数据,由不同的表(enitities)组成。这就是我能说的全部。
答案 0 :(得分:1)
看起来你正在使用无效的驱动程序类型。
QSqlDatabase的Qt文档说你想要其中一个:
The currently available driver types are:
Driver Type Description
QDB2 IBM DB2
QIBASE Borland InterBase Driver
QMYSQL MySQL Driver
QOCI Oracle Call Interface Driver
QODBC ODBC Driver (includes Microsoft SQL Server)
QPSQL PostgreSQL Driver
QSQLITE SQLite version 3 or above
QSQLITE2 SQLite version 2
QTDS Sybase Adaptive Server
所以看起来你需要尝试:
self.db = QSqlDatabase.addDatabase('QSQLITE')