[gelöst] treeview setPalette Zeilen mehrfarbig

Alles rund um die Programmierung mit Qt
Antworten
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

[gelöst] treeview setPalette Zeilen mehrfarbig

Beitrag 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

:roll:
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 »

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 »

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 »

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.
:oops:
"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 »

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 »

Wie nutze ich jetzt diese Eigenschaft meines Models im NutzCode.
Ich verstehe nicht wie ich jetzt die Qt::BackroundRole nutzen kann.
:oops:
Nutzen tust DU das gar nicht! Die View holt sich die Daten zum Malen.
Dass es nicht geht hat einen ganz banalen Grund :P

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 :P
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Beitrag von 24dan »

danke


Ohh Gott schenk grips..... :roll:
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
Antworten