[gelöst] QLabel Hintergrundfarbe ändern

Alles rund um die Programmierung mit Qt
Antworten
tscher
Beiträge: 13
Registriert: 24. Mai 2006 15:11

[gelöst] QLabel Hintergrundfarbe ändern

Beitrag von tscher »

Hallo liebe Qt Experten,

mein Problem ist eigentlich sehr einfach: Ich hab ein QLabel mit einem Text drauf und würde gerne die Hintergrundfarbe des Labels verändern (als "Anzeigelämpchen" für verschiedene Ereignisse). Ich mache also beispielsweise folgendes:

Code: Alles auswählen

QLabel* la = new QLabel(this);
la->resize(200,50);
la->move(100,100);
la->setText("Hello World");
la->setAlignment(Qt::AlignCenter);

QPalette p = la->palette();
p.setColor(QPalette::Window,Qt::green);
la->setPalette(p);
und hoffe das ich ein Label mit grünem Hintergrund bekomme. Leider hoffe ich vergeblich... der Hintergrund bleibt normal grau. Ich hab schon verschiedene QColorRoles ausprobiert (QPalette::Window, QPalette::Base, etc. etc.); ich kann auch z.B. mit QPalette::WindowText die Textfarbe ändern, nur eben die Hintergrundfarbe nicht.

Daher meine Frage: was mach ich hier falsch ? Hab ich eine falsche ColorRole, oder hab ich sonstwas übersehen ?

Vielen Dank im Voraus für Eure Hilfe !
lG,
tscher
Zuletzt geändert von tscher am 21. November 2006 17:18, insgesamt 1-mal geändert.
defenderLQ
Beiträge: 156
Registriert: 27. Juli 2006 20:53

Beitrag von defenderLQ »

ich würde es mit stylsheet machen .

also in einer .qss oder im .ui es definieren:

bei mir klappt beide methoden.

beim .ui in stylesheet würde ich das probieren:

Code: Alles auswählen

QLabel {
    background-color: rgb(192,192,192);

}
oder

Code: Alles auswählen

QLabel {
    background-color: beige;

}
oder

Code: Alles auswählen

QLabel {
    background-color: #d0d67c;

}
also in .qss und in der .ui klappt es so ziemlich gut bei mir aber
ich habe bis jetzt nicht im code die farben oder hintergründe angegeben.

ich kann mal nachschauen wie es noch anders auch noch geht....
Zuletzt geändert von defenderLQ am 21. November 2006 11:20, insgesamt 2-mal geändert.
Burgpflanze
Beiträge: 89
Registriert: 24. Februar 2006 16:41
Wohnort: Dresden

Beitrag von Burgpflanze »

Voher noch

Code: Alles auswählen

la->setAutoFillBackground( true );
setzen.
Siehe Qt-Dokumentation QWidget::autoFillBackground().
Gruß, Peter
tscher
Beiträge: 13
Registriert: 24. Mai 2006 15:11

Danke jetzt klappts :-)

Beitrag von tscher »

Moin,

vielen Dank an Burgpflanze - mit setAutoFillBackground(true) funktionierts !

DefenderLQ: Danke für den Hinweis, aber im Stylesheet definieren hilft mir nicht weil das Label ja (je nachdem was in der Applikation passiert) dynamisch die Farbe wechseln soll.

Danke nochmal & liebe Grüße,
tscher
Antworten