mod = new QSqlTableModel();
mod->setTable("arbeitszeit");
mod->setSort(0, Qt::DescendingOrder);
mod->select();
m_ui->tableView->setModel(mod);
Nun möchte ich, wenn z.B. die Anwesenheit kleiner 8 Std. ist ein Feld rot einfärben. Aber ich finde keinen funktionierenden Ansatz auf eine Zeile und Spalte zuzugreifen und diese zu ändern.
Könnte mir bitte jemand einen Tip oder ein Stichwort geben?
Dieser Thread war schon sehr hilfreich und half mir eine funktionierende Lösung zu implementieren. Danke dafür!
Mit einem QSqlQueryModel-Objekt hole ich Artikel aus einer Datenbank. Ein zusätzliches berechnetes Feld soll den Inventarwert (nach FIFO-Prinzip) anzeigen. Hierfür ist neben Datenbankzugriffen (QSqlQuery) auch eine Berechnung notwendig.
Wie im Thread beschrieben, habe ich eine Klasse von QSqlQueryModel abgeleitet und die Methode data überschrieben. In dieser Methode wird das zusätzliche Feld berechnet.
Wie ich sehe, wird die Methode data sehr oft aufgerufen. Beim Scrollen in der TableView etc. Gibt es keine andere ressourcenschonendere Möglichkeit? (setData, ...)
@upsala: Danke für den Tipp! Ich habe die Methode queryChange meiner von QSqlQueryModel abgeleiteten Klasse überschrieben. In dieser Methode invalidiere ich das Cachedictionary (self.dict = {}) und in der data-Methode befülle ich das Cachedictionary. Funktioniert einwandfrei! Danke!