Seite 1 von 1

Qt4.2: Model/View/Delegate: Unterschiedliche Farben für Item

Verfasst: 22. November 2007 14:09
von nando
Hi,

ich habe eine model/view architektur von Qt.
QTableModel + QTableViews...
Nun habe ich ein Delegate gemacht fuer die Views und moechte fuer jede Zelle eine andere Farbe setzen....

Wie muss ich da vorgehen...

ich hab die drawDisplay Methode überschrieben, aber die Zeichnet dann immer alle Daten der View neu.. ich will aber unterschiedliche Farben für jede Zelle...

Ich muss irgendwie an den Index kommen und dann abhängig von row und column verschiedene Farben verwenden... aber wie?????

Gruss,
Nando

Verfasst: 22. November 2007 14:16
von Sephral
Hallo,
schätze das könntest du auch ohne Delegate schon im Model machen.
Mit der BackgroundRole hab ichs aber noch nicht ausprobiert.

Code: Alles auswählen

QVariant MyModel::data(const QModelIndex &index, int role) const
{
    if(role == Qt::BackgroundRole)
    {
        // Farbe bestimmen
        return Qt::red;
    }
}
Ciao,
Sephral

Verfasst: 22. November 2007 14:45
von nando
Hi...
ja so hab ich es schon...
das problem ist aber, dass ich verschiedene Views habe, die die gleichen daten unterschiedlich anzeigen sollen... Deswegen ist es nicht gut das im model zu machen...
ich moechte jede view konfigurieren koennen, wie sie die daten interpretieren soll....

gruss,
nando

Verfasst: 22. November 2007 15:16
von Sephral
Hiho,

schau dir mal das Beispiel an: http://doc.trolltech.com/4.3/qitemdelegate.html#paint

Ich schätze das lässt sich auf Dein Vorhaben umbauen.
Du hast den Index und kannst zeichnen.


Ciao,
Sephral