Seite 1 von 1

Rote Elemente in einer QListView

Verfasst: 18. Juni 2007 11:49
von TimeForGold
Hallo zusammen,

ich möchte bestimmte Elemente in einer QListView nicht mit schwarzen Text, sondern mit roten Text haben. Ich muss eine QListView verwenden, weil ich ein Datenmodell verwende. Könnt Ihr mir vielleicht weiter helfen?

Danke

TimeForGold

Verfasst: 18. Juni 2007 12:20
von upsala
Schau dir ForegroundRole an, die ist für sowas da.

Verfasst: 18. Juni 2007 13:07
von TimeForGold
Das geht in die richtige Richtung, aber ich habe noch nicht herausgefunden wie ich eine individuelle Farbe dort zuweisen kann. Außerdem wenn ich die Funktion aufrufe mit einer der Werte aus dem enum passiert bei mir nicht wirklich was.

Das hatte ich zum testen mal aufgerufen, ist aber nichts passiert:

Code: Alles auswählen

pcListViewKoDo->setForegroundRole(QPalette::Background);

Ich rufe die Funktion in dem Kontext auf, wo ich die QListViews initialisiere.

Verfasst: 18. Juni 2007 13:28
von marco
da ich meist ohnehin mit selbst konstruierten models arbeite, setz ich in

Code: Alles auswählen

QVariant Q****Model::data(const QModelIndex &index, int role)
einfach so etwas in der art

Code: Alles auswählen

if (role == Qt::ForegroundRole) {
  if (BEDINGUNG()) return qVariantFromValue(QColor(Qt::red));
}
das sollte dir weiterhelfen.

Verfasst: 18. Juni 2007 13:30
von @udisello
Hallo,

habe ein ListWidget und dort kann ich die Schriftfarbe der Element folgendermaßen ändern:

Code: Alles auswählen

QPalette Pal( this->palette() );
QColor Col( 255, 0, 0, 255 );
Pal.setColor( QPalette::Text, Col  );
this->setPalette( Pal );
Vielleicht funktioniert das bei Dir.