QTableView Daten vor der Anzeige anpassen. Wie?
Verfasst: 21. August 2009 14:20
Hallo an alle!
Ich habe folgendes Problem. Muss die Date aus der SQLite-Tabelle nur für die Anzeige in QTabelView anpassen. In dem Fall geht es z.b. um das Datum.
Wie kann man das am besten machen?
Kann ich bei QSqlTableModel auch eigene SQL-Abfrage machen, wo ich das Datum in der Abfrage schon in den richtigen Format bringe?
Ich habe folgendes Problem. Muss die Date aus der SQLite-Tabelle nur für die Anzeige in QTabelView anpassen. In dem Fall geht es z.b. um das Datum.
Wie kann man das am besten machen?
Kann ich bei QSqlTableModel auch eigene SQL-Abfrage machen, wo ich das Datum in der Abfrage schon in den richtigen Format bringe?
Code: Alles auswählen
QSqlTableModel *model = new QSqlTableModel(this);
model->setEditStrategy(QSqlTableModel::OnRowChange);
model->setTable("gruppen");
model->select();
int index=model->record().indexOf("erstellt");
QDateTime d=model->record(0).value(index).toDateTime();
QString date=d.toString("dd.MM.yyyy hh:mm");
model->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
model->setHeaderData(1, Qt::Horizontal, QObject::tr("Bezeichnung"));
model->setHeaderData(2, Qt::Horizontal, QObject::tr("Beschreibung"));
model->setHeaderData(3, Qt::Horizontal, QObject::tr("Parent ID"));
model->setHeaderData(4, Qt::Horizontal, QObject::tr("Position"));
model->setHeaderData(5, Qt::Horizontal, QObject::tr("Erstellt am"));
model->setHeaderData(6, Qt::Horizontal, QObject::tr("Erstellt von"));
model->setHeaderData(7, Qt::Horizontal, QObject::tr("Geaendert am"));
model->setHeaderData(8, Qt::Horizontal, QObject::tr("Geaendert von"));
model->setHeaderData(9, Qt::Horizontal, QObject::tr("Trash"));
model->setHeaderData(10, Qt::Horizontal, QObject::tr("Tab-Mitarbeiter"));
model->setHeaderData(11, Qt::Horizontal, QObject::tr("Sync ID"));
ui->tableGruppen->setModel(model);
ui->tableGruppen->resizeColumnsToContents();
ui->tableGruppen->setColumnHidden(3,true);
ui->tableGruppen->setColumnHidden(4,true);
ui->tableGruppen->setColumnHidden(9,true);
ui->tableGruppen->setColumnHidden(10,true);
ui->tableGruppen->setColumnHidden(11,true);
ui->tableGruppen->horizontalHeader()->setResizeMode(2, QHeaderView::Stretch);
ui->tableGruppen->verticalHeader()->setHidden(true);