2014-01-12 5 views
2
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_() 

Код, приведенный выше, является простым объектом, который я намерен создать для просмотра содержимого моей базы данных. Но все, что он производит, - пустая белая коробка. Благодаря!Python: Почему моя база данных не появится в этом окне?

В базе данных содержатся данные в нем и состоит из разных таблиц (enitities). Это все, что я могу сказать.

+2

... и что случилось с белой коробкой? Белый ящик означает, что 'QTableView' * действительно отображается. О том, что он пуст, может быть, потому, что у вас нет данных в вашей базе данных? Мы не можем воспроизвести, если вы не предоставляете больше информации о базе данных. – Bakuriu

+0

это мой первый вопрос здесь, извините! (Обновлено) – user3187956

ответ

1

Похоже, вы используете тип драйвера invlaid.

Документы Qt для QSqlDatabase говорят, что вы хотите, один из них:

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') 
Смежные вопросы