Farbauswahl in Combobox

Alles rund um die Programmierung mit Qt
Antworten
pm_Snake
Beiträge: 86
Registriert: 7. September 2004 11:33

Farbauswahl in Combobox

Beitrag von pm_Snake »

Hallo!

Ich möchte eine Farbauswahl-Combobox erstellen, in welcher es Möglich ist Farben zu wählen. Dabei soll es nicht über Text gewählt werden, sondern als Elemente der Combo soll man farbige Balken sehen können.

Ich könnte zum Bleistift Pixmaps oder so in die Combobox stecken, aber was passiert dann wenn der Layoutmanager die Combobox vergrössert ( Benutzer zieht Fenster grösser ) ?
Da müsste ich ja praktisch für jede Grösse ein Pixmap haben, was unmöglich ist.

Hat einer von euch bereits ne solche Klasse und kann mir paar Tips geben? Weil ich kann mir das nun absolut nicht vorstellen, so ne Combo wär aber absolut schick :)

Danke im vorraus!

greets,
pm_Snake
>>[-]>[-]>[-]>[-]<<<<<[->>+<-[>>>]>[[<+>-]>+>>]<<<<<]
Spring-Daniel
Beiträge: 40
Registriert: 4. Oktober 2004 16:26

Beitrag von Spring-Daniel »

http://webcvs.kde.org/kdelibs/kdeui/kco ... &view=auto
http://webcvs.kde.org/kdelibs/kdeui/kco ... &view=auto

Die einzige KDE-Abhaengigkeit, die ich da jetzt so beim kurzen ueberfliegen finden kann, ist KColorDialog, die sich aber sehr einfach mit QColorDialog ersetzen laesst.

Viel Spass damit,
Daniel
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag von ArneStocker »

wenn Du auf das signal activated(int index) regieren willst, kannst Du mit jedem Index eine Farbe verbinden (z.B. Liste mit QColor)

Code: Alles auswählen


typedef QValueList <QColor> FarbListe;

class ...
{
	FarbListe m_farbliste;        // Werte im Konstruktor setzen

	...

	protected slot : 
	
	void OnComboActivate(int index);
}

void OnComboActivate(int index)
{	
	ASSERT(index < m_farbliste.count());
	ComboBoxName->setBackgroundColor(m_farbliste[index]);
}


das sollte genügen. Natürlich musst Du die Farbliste im Konstruktor Deiner Fensterklasse noch gesondert setzen und den slot OnComboActivate mit der ComboBox 'ComboBoxName' verbinden
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag von ArneStocker »

sorry, es muss heissen :

Code: Alles auswählen

 ... ->setPaletteBackgroundColor( ... )
Antworten