Почему не отображаются столбцы таблицы SQLite в TableView Qt с++?

Итак, сделал таблицу STUDENTS в DBBrowser for SQLite, подключил к Qt но почему то столбцов таблицы нету в TableView. В чем может быть проблема?

Код mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);


    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("./students.db");

    if(db.open()){
        ui->statusbar->showMessage("db open" + db.databaseName());

        model = new QSqlTableModel(this, db);
        model->setTable("STUDENTS");


        model->select();

        ui->tableView->setModel(model);
        ui->tableView->resizeColumnsToContents();
    }
    else {ui->statusbar->showMessage("no conneciton " + db.lastError().databaseText());}



}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::on_btnAdd_clicked()
{
    model->insertRow(model->rowCount());
}

Хедер

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlTableModel>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();


private slots:
    void on_btnAdd_clicked();

private:
    Ui::MainWindow *ui;
    QSqlDatabase db;
    QSqlTableModel *model;
};
#endif // MAINWINDOW_H

Ответы (1 шт):

Автор решения: eri

Нужно добавить ещё вызов метода setQuery https://doc.qt.io/qt-6/qsqlquerymodel.html#setQuery

Была такая же проблема в python.

→ Ссылка