Alles rund um die Programmierung mit Qt
24dan
Beiträge: 274 Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg
Beitrag
von 24dan » 13. März 2010 21:52
Hi, habe ein model und ein treeview.
FRAGE: wie bekomme die Zeilen mehrfarbig?
alternatingRowColors habe ich schon in Verwendung reicht mir aber nicht.
ZIEL:
Farbige Zeilen meines QTreeview sollen wie folgt werden:
zeilen 1 - 10 weis/gelb
zeilen 11-50 grün/blau
zeilen 51-100 rot/weis
Zuletzt geändert von
24dan am 26. März 2010 21:15, insgesamt 1-mal geändert.
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
24dan
Beiträge: 274 Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg
Beitrag
von 24dan » 26. März 2010 19:32
kann jemand wenigstens sagen ob das über geht?
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
franzf
Beiträge: 3114 Registriert: 31. Mai 2006 11:15
Beitrag
von franzf » 26. März 2010 19:38
Zeichnen über Delegates.
Ansonsten eigenes Model und entsprechend bei data() die passende Farbe für Qt::BackgroundRole zurück geben.
24dan
Beiträge: 274 Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg
Beitrag
von 24dan » 26. März 2010 20:49
okay habe mich jetzt für die data && role Methode im Model entschieden.
Code: Alles auswählen
QVariant TreeModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
return QVariant();
if (role != Qt::DisplayRole && role != Qt::EditRole)
return QVariant();
if (role == Qt::BackgroundRole)
return QVariant(QColor(Qt::red));
TreeItem *item = getItem(index);
return item->data(index.column());
}
Wie nutze ich jetzt diese Eigenschaft meines Models im NutzCode.
Ich verstehe nicht wie ich jetzt die Qt::BackroundRole nutzen kann.
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
24dan
Beiträge: 274 Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg
Beitrag
von 24dan » 26. März 2010 21:15
habe jetzt ne Beispiel für ItemDelegate() gefunden und es funktioniert wirklich....
Alles weitere würde ich natürlich trotzallem gerne verstehen.
hier mal der Link
http://qt.nokia.com/developer/faqs/faq. ... 774969370/
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
franzf
Beiträge: 3114 Registriert: 31. Mai 2006 11:15
Beitrag
von franzf » 26. März 2010 21:30
Wie nutze ich jetzt diese Eigenschaft meines Models im NutzCode.
Ich verstehe nicht wie ich jetzt die Qt::BackroundRole nutzen kann.
Nutzen tust DU das gar nicht! Die View holt sich die Daten zum Malen.
Dass es nicht geht hat einen ganz banalen Grund
Code: Alles auswählen
QVariant TreeModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
return QVariant();
if (role != Qt::DisplayRole && role != Qt::EditRole) < --- WAS MACHST DU HIER?
return QVariant(); // Und was passiert dann hier?
if (role == Qt::BackgroundRole) // Kann hier überhaupt noch was passieren?
return QVariant(QColor(Qt::red));
TreeItem *item = getItem(index);
return item->data(index.column());
}
Ich denke du verstehst was ich meine
24dan
Beiträge: 274 Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg
Beitrag
von 24dan » 26. März 2010 22:55
danke
Ohh Gott schenk grips.....
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)