Ich habe QSqlQueryModel abgeleitet und QSqlQueryModel::data neu implementiert.
Dort gebe ich für eine Spalte die Farbe zurück. Die Farbe steht in eine andere Spalte. Diese zweite Spalte soll natürlich nicht in der QTableView erscheinen.
Kann ich diese Spalte verstecken in der Model?
Z.Zt. habe ich bei QTableView die Spalte versteckt, aber das würde ich gerne bereits im Model erledigen wollen. Diese Spalte ist schließlich nur für Qt::TextColorRole zuständig, nicht aber für Qt::DisplayRole.
Ich hatte versucht einen nicht validen QVariant zurück zu geben, jedoch erschien dann immer noch eine leere Spalte.
QSqlQueryModel spalten ausblenden
Wieviele Spalten das Model und die View haben, wird über den columnCount zurückgegeben.
Normalerweise würde man Zusatzinformationen über eine andere role zurückgeben. In diesem Fall müsstest du dir aber fast ein neues Model schreiben, um eine sinnvolle Lösung zu bekommen.
Ein Ausblenden der Spalte im QTableView ist hier wesentlich einfacher.
Normalerweise würde man Zusatzinformationen über eine andere role zurückgeben. In diesem Fall müsstest du dir aber fast ein neues Model schreiben, um eine sinnvolle Lösung zu bekommen.
Ein Ausblenden der Spalte im QTableView ist hier wesentlich einfacher.
Bspw:
Code: Alles auswählen
view->setColumnHidden(model->fieldIndex("feldname"), true);
@pfid
ich nutze
deine zeile wird mit eine Fehlermeldung quitiert:
ich nutze
Code: Alles auswählen
View->hideColumn(model->record().indexOf("id"));Code: Alles auswählen
error: 'class QSqlQueryModel' has no member named 'fieldIndex'Ups, verpeilt dass du ein Query-Model und kein Table-Model hast.miki11 hat geschrieben:@pfid
ich nutzedeine zeile wird mit eine Fehlermeldung quitiert:Code: Alles auswählen
View->hideColumn(model->record().indexOf("id"));Code: Alles auswählen
error: 'class QSqlQueryModel' has no member named 'fieldIndex'