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

标签 python sql user-interface pyqt

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

关于Python:为什么我的数据库不显示在这个窗口中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21079759/

相关文章:

python (JSON): TypeError: expected string or buffer

python - Twitter API - 获取具有特定 ID 的推文

python - beautifulsoup4 python 处理解析数据

mysql - 如何在 MySql 中返回具有相同列值的行

python - 在 RDFLIB 中使用前缀

sql - 从包含每月条目的表生成日期范围

mysql显示记录不在其他登录组中

java - 从用户输入获取双倍值时出错

Linux 嵌入式系统中的 Java Swing

ruby - Ruby 的 GUI 设计器