Есть у меня простая форма с одной кнопкой и tableView:
void MainWindow::on_pushButton_clicked()
{
QSqlDatabase db = createConnection();
QSqlQuery qry("select id, name from public.groups", db);
qry.first();
QSqlQueryModel model;
model.setQuery(qry);
if(model.lastError().isValid())
qDebug() << model.lastError();
ui->tableView->setModel(&model);
ui->tableView->show();
db.close();
}
Жамкаем на кнопку, пауза… и ничего не меняется. Данные в базе есть, т.к. если запихать на форму TableWidget и поместить на кнопку это:
void MainWindow::on_pushButton_clicked()
{
for(int i = ui->tableWidget->rowCount()-1; i >= 0 ; i--)
ui->tableWidget->removeRow(i);
QSqlDatabase db = createConnection();
QSqlQuery qry("select id, name from public.groups", db);
int nId = 0;
QString sName;
QSqlRecord rec = qry.record();
for(int i = 0; qry.next(); i++)
{
nId = qry.value(rec.indexOf("id")).toInt();
sName = qry.value(rec.indexOf("name")).toString();
ui->tableWidget->insertRow(i);
ui->tableWidget->setItem(i, 0, new QTableWidgetItem(QString::number(nId)));
ui->tableWidget->setItem(i, 1, new QTableWidgetItem(sName));
}
ui->tableWidget->resizeColumnsToContents();
db.close();
}
то увидим это, т.е. данные есть. Как правильно готовить модель-представление?