Seite 1 von 1
[gelöst] treeview setPalette Zeilen mehrfarbig
Verfasst: 13. März 2010 21:52
von 24dan
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

Verfasst: 26. März 2010 19:32
von 24dan
kann jemand wenigstens sagen ob das über geht?
Verfasst: 26. März 2010 19:38
von franzf
Zeichnen über Delegates.
Ansonsten eigenes Model und entsprechend bei data() die passende Farbe für Qt::BackgroundRole zurück geben.
Verfasst: 26. März 2010 20:49
von 24dan
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.

Verfasst: 26. März 2010 21:15
von 24dan
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/
Verfasst: 26. März 2010 21:30
von franzf
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

Verfasst: 26. März 2010 22:55
von 24dan
danke
Ohh Gott schenk grips.....
