我创建了一个名为" test.db"的SQLite数据库。它只有一个名为" table1"这不是一张空桌子。 我试图显示" table1"在QTableView小部件中但小部件什么都没显示。 数据库已连接,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小部件diaplay什么都没有。问题在哪里?
答案 0 :(得分:0)
test.setDatabaseName("test.db"); // after this line open database connection.
test.open();