[gelöst] QLabel Hintergrundfarbe ändern

Alles rund um die Programmierung mit Qt
Antworten
lordofthebrain
Beiträge: 25
Registriert: 5. März 2006 16:49
Kontaktdaten:

[gelöst] QLabel Hintergrundfarbe ändern

Beitrag 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
Zuletzt geändert von lordofthebrain am 24. März 2008 19:26, insgesamt 1-mal geändert.
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

Beitrag von Volker »

schon mit Stylesheets versucht?

Code: Alles auswählen

label->setStyleSheet("QLabel { background-color: yellow }");
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
mathies
Beiträge: 149
Registriert: 9. Februar 2007 17:50
Wohnort: Erfurt

Beitrag 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.
lordofthebrain
Beiträge: 25
Registriert: 5. März 2006 16:49
Kontaktdaten:

Beitrag 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
Flachkoepper
Beiträge: 149
Registriert: 11. Januar 2005 12:14
Wohnort: Hannover

Beitrag von Flachkoepper »

Allerdings wirst du unter Windows nicht um StyleSheets herumkommen...
defenderLQ
Beiträge: 156
Registriert: 27. Juli 2006 20:53

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