Ich verwende ein QSqlTableModel um Daten aus einer Sql-Tabelle in einem QTableView darzustellen. Ich rufe das ganze über meine Funktion selectTable auf:
Code: Alles auswählen
void MainWindow::selectTable(QString sqlTable, QString sqlFilter)
{
ui->tabWidget->setTabText(0, sqlTable);
QSqlTableModel *model = new QSqlTableModel(ui->tableView);
model->setTable(sqlTable);
if (sqlFilter != "") {
model->setFilter(sqlFilter);
}
if (sqlTable == "aufwahlhistorie")
{
model->setSort(0, Qt::DescendingOrder);
}
else
{
model->setSort(1, Qt::AscendingOrder);
}
model->select();
ui->tableView->setModel(model);
ui->tableView->setColumnHidden(0, true);
ui->tableView->setAlternatingRowColors(true);
ui->tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
ui->statusBar->showMessage(tr("Fertig!"));
ui->textEdit->insertPlainText("Tabelle " + sqlTable + " ausgelesen.\n");
}Mir scheint der Fehler liegt darin, dass ich das QSqlTableModel jedes mal neu erzeuge.
Wie kann ich das besser machen, ohne dass der Speicherverbrauch bei jedem Aufruf der Funktion steigt?
Michael