创建了一个名为"test.db"的SQLite数据库。它只有一个名为"table1"的表,该表不是空表。我试图在QTableView小部件中显示"table1",但小部件没有显示任何内容。数据库已连接,Qt Createor未检测到任何错误。我不明白为什么QTableView什么也没显示。
我代码:#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtCore>
#include <QSqlDatabase>
#include <QSqlTableModel>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSqlDatabase test = QSqlDatabase::addDatabase("QSQLITE");
test.setDatabaseName("test.db");
if (test.open())
{
ui->DB_Status->setText("DB is connected.");
}
else
{
ui->DB_Status->setText("DB is not connected.");
}
QSqlTableModel *model = new QSqlTableModel(this,test);
model->setTable("table1");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
model->setHeaderData(0, Qt::Horizontal, tr("Row1"));
model->setHeaderData(1, Qt::Horizontal, tr("Row2"));
ui->tableView->setModel(model);
ui->tableView->show();
}
我可以运行程序,但QTableView小部件显示什么。
test.setDatabaseName("test.db"); // after this line open database connection.
test.open();