如何在QTableView小部件中显示SQLite数据库中的表



创建了一个名为"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();

相关内容

  • 没有找到相关文章

最新更新