Seite 1 von 1

QComboBox-Item Hintergrundfarbe ändern

Verfasst: 3. Februar 2010 16:28
von sacrif
Hi,
ich habe eine QComboBox erstellt und nun möchte ich gerne einige Items adden die immer eine bestimmte Hintergrundfarbe bekommen. (also jedes der Items die geaddet werden soll eine unterschiedliche haben)
Gibt es hier einen einfachen Weg das zu erreichen?
Ich habe scho etwas gesucht und einige Lösungen über QStylesheets gefunden - da ich damit aber nicht so viel auf dem Hut habe hab ich gehofft es findet sich hier vielleicht eine ganz simple Lösung. Außerdem habe ich das Gefühl das diese Lösungen is kaum erlauben die einzelnen Items zu ändern sondern nur die Hintergrundfarbe für alle zusammen.

Der code sollte so etwa aussehen:

Code: Alles auswählen

QComboBox* combo = new QComboBox(this);
combo ->addItem("somestring", Qvariant);
//und das zuletzt gesetzte item soll nun noch eine Hintergrundfarbe bekommen.
Danke & lg scr

Verfasst: 3. Februar 2010 16:59
von upsala
In der Drop-Down-Liste? Die Liste ist eine QListView und somit können die Farben über die role geändert werden.

Verfasst: 3. Februar 2010 17:51
von sacrif
Hi,
danke mal für die Antwort, allerdings steh ich noch immer ein bischen auf der Leitung.
Wie meinst du das mit dem "die Liste ist eine QListView". Zumindest wird die QComboBox nicht von QListView abgeleitet.

Wie würde ich also auf das letzte Item das ich gerade geadded habe zugreifen und ihm eine Farbe zuweisen? Wenn das einfach geht wären ein paar Zeilen Code zur Veranschaulichung nett.

Ich hab mir die QListView Doku angesehen, aber mir ist der Zusammenhang zur ComboBox noch nicht ganz klar.

lg

Verfasst: 3. Februar 2010 17:59
von upsala

Code: Alles auswählen

void QComboBox::setItemData ( int index, const QVariant & value, int role = Qt::UserRole )
http://doc.trolltech.com/4.6/qt.html#ItemDataRole-enum