QComboBox-Item Hintergrundfarbe ändern

Alles rund um die Programmierung mit Qt
Antworten
sacrif
Beiträge: 40
Registriert: 22. Januar 2010 18:52

QComboBox-Item Hintergrundfarbe ändern

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

In der Drop-Down-Liste? Die Liste ist eine QListView und somit können die Farben über die role geändert werden.
sacrif
Beiträge: 40
Registriert: 22. Januar 2010 18:52

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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
Antworten