Skip to main content
 首页 » 编程设计

Python:为什么我的数据库不显示在这个窗口中

2025年05月04日7itcoder

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_() 

上面的代码是一个简单的对象,我打算创建一个窗口来查看我的数据库的内容。但它产生的只是一个空白的白框。谢谢!

数据库中有数据,由不同的表(实体)组成。我只能说这些。

请您参考如下方法:

看起来您使用的是 invlaid 驱动程序类型。

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')