Seite 1 von 1
[gelöst] QLabel Hintergrundfarbe ändern
Verfasst: 24. März 2008 10:51
von lordofthebrain
Hallo,
möchte von einem QLabel den Hintergrund ändern. Funktioniert aber nicht. Meine Code:
Code: Alles auswählen
QLabel *label= new QLabel;
QPalette *palette = new QPalette;
palette->setColor(QPalette::Button,QColor(255,255,0));
label>setPalette(*palette);
Habs auch schon mit der ColorRole QPalette::Base versucht. Ohne Erfolg. Entweder geht das gar nicht oder nur ganz anders oder ich verwende nur die falsche ColorRole. Bin über jeden Hinweis dankbar.
Bei Buttons, Combobox, etc funktioniert der obrige Code.
Gruß Fabian
Verfasst: 24. März 2008 16:58
von Volker
schon mit Stylesheets versucht?
Code: Alles auswählen
label->setStyleSheet("QLabel { background-color: yellow }");
Verfasst: 24. März 2008 19:02
von mathies
Hallo,
Du erzeugst hier ein
Label und setzt die Hintergrundfarbe eines
Buttons mit deiner Zeile:
palette->setColor(QPalette::Button,QColor(255,255,0));
Das wird nicht funktionieren. Ich denke mit:
Code: Alles auswählen
// Für einen Button:
// neuen Button anlegen
QPushButton *button = new QPushButton;
// Palette des Buttons holen
QPalette palette = button->palette();
// gewünschte Werte ändern
palette.setColor(QPalette::Button,QColor(255,255,0));
// Palette setzen
button>setPalette(palette);
// Für eine Label:
// neus Label anlegen
QLabel *label = new QLabel;
// Palette des Labels holen
QPalette palette = label->palette();
// gewünschte Werte ändern
palette.setColor(QPalette::Background,QColor(255,255,0));
// Palette setzen
label>setPalette(palette);
hast Du mehr Glück.
Verfasst: 24. März 2008 19:30
von lordofthebrain
Hallo,
danke für die Hinweise. Wichtig ist aber setAutoFillBackground(true) zu setzen, sonst hat das Label gar keinen Background. Hab ich zufällig dann selbst über den Designer heraus bekommen.
Ansonsten stimmt das was in den Antworten steht. Danke dafür.
Gruß Fabian
Verfasst: 25. März 2008 09:48
von Flachkoepper
Allerdings wirst du unter Windows nicht um StyleSheets herumkommen...
Verfasst: 26. März 2008 13:38
von defenderLQ
lordofthebrain hat geschrieben:Hallo,
danke für die Hinweise. Wichtig ist aber setAutoFillBackground(true) zu setzen, sonst hat das Label gar keinen Background. Hab ich zufällig dann selbst über den Designer heraus bekommen.
Ansonsten stimmt das was in den Antworten steht. Danke dafür.
Gruß Fabian
Seit Qt 4.3.* habe ich nun Probleme mit QLabel und einem Background Image.
Ich kanns via stylesheet machen aber ich wollte die meine alte variante nutzen
seitdem ich auf QT 4.3.* umgestiegen geht diese mehtode nicht mehr:
Code: Alles auswählen
WidgetBackgroundImage::setBackgroundImage(ui.addfriendLabel, ":images/new-contact.png", WidgetBackgroundImage::AdjustHeight);
Die Klasse ist in WidgetBackgroundImage.h/*.Cpp definiert.
Ich will mal testen ob
setAutoFillBackground(true) es wieder aktiviert.
Edit:
Es hat nichts gebracht Hinter Grund Image wird nicht angezeigt.