Probleme mit QPalette
Verfasst: 5. Oktober 2005 14:35
Hallo alle miteinander,
Ich habe derzeit ein Problem.
Ich versuche, mein Programm in ein Farbschema einzupassen.
Ich habe eine komplette QPalette dafür erstellt, bei der ich jeder ColorRole erstmal eine Testfarbe zugeordnet habe.
Wenn ich nun diese Palette meinem Fenster zuweise, werden nicht alle Objekte richtig eingefärbt, vor allem die QPushButtons tun so garnicht, was sie sollen. Deßhalb habe ich jetzt testweise einen QPushButton einzeln eigefärbt. Ein paar Farben, wie z.B. die Schriftfarbe werden auch richtig übernommen, aber z.B. die Background-Farbe funzt nicht.
Hier der Code:
Definitionen in Header-Datei:
Initialisierung in Cpp-Datei:
Zuweisung der Palette an den QPushButton:
So, das war ne Menge Code, aber falls mir jemand helfen könnte, so dass mein QPushButton letztendlich nen schwarzen Hintergrund und grünen Text hat, wäre das Klasse.
EDIT:
Ich habe das Program mal im Motif-Style probiert, und da funktioniert alles.
Es schein also am WinXP-Style zu liegen.
Falls jemand da eine Idee hat, dann wäre ich dafür sehr dankbar.
EDIT Ende!
Danke im Voraus,
Prof. MAAD
Ich habe derzeit ein Problem.
Ich versuche, mein Programm in ein Farbschema einzupassen.
Ich habe eine komplette QPalette dafür erstellt, bei der ich jeder ColorRole erstmal eine Testfarbe zugeordnet habe.
Wenn ich nun diese Palette meinem Fenster zuweise, werden nicht alle Objekte richtig eingefärbt, vor allem die QPushButtons tun so garnicht, was sie sollen. Deßhalb habe ich jetzt testweise einen QPushButton einzeln eigefärbt. Ein paar Farben, wie z.B. die Schriftfarbe werden auch richtig übernommen, aber z.B. die Background-Farbe funzt nicht.
Hier der Code:
Definitionen in Header-Datei:
Code: Alles auswählen
QPushButton *quitButton;
QColor *greenColor;
QColor *blackColor;
QColor *grayColor;
QPalette *buttonPalette;
Code: Alles auswählen
greenColor = new QColor(0,255,0,255);
blackColor = new QColor(0,0,0,255);
grayColor = new QColor(75,75,75,255);
//Standart-ColorRoles
buttonPalette->setColor(QPalette::Background,blackColor->rgb());
buttonPalette->setColor(QPalette::Foreground,greenColor->rgb());
buttonPalette->setColor(QPalette::Base,grayColor->rgb());
buttonPalette->setColor(QPalette::AlternateBase,grayColor->rgb());
buttonPalette->setColor(QPalette::Text,greenColor->rgb());
buttonPalette->setColor(QPalette::Button,blackColor->rgb());
buttonPalette->setColor(QPalette::ButtonText,greenColor->rgb());
//Button-ColorRoles
buttonPalette->setColor(QPalette::Light,grayColor->rgb());
buttonPalette->setColor(QPalette::Midlight,grayColor->rgb());
buttonPalette->setColor(QPalette::Dark,blackColor->rgb());
buttonPalette->setColor(QPalette::Mid,blackColor->rgb());
buttonPalette->setColor(QPalette::Shadow,greenColor->rgb());
//Highlight-ColorRoles
buttonPalette->setColor(QPalette::Highlight,blackColor->rgb());
buttonPalette->setColor(QPalette::HighlightedText,
greenColor->rgb());
//Spezial-Text-ColorRoles
buttonPalette->setColor(QPalette::BrightText,greenColor->rgb());
buttonPalette->setColor(QPalette::Link,greenColor->rgb());
buttonPalette->setColor(QPalette::LinkVisited,greenColor->rgb());
Code: Alles auswählen
quitButton = new QPushButton(tr("&Quit"));
quitButton->setPalette(*buttonPalette);
EDIT:
Ich habe das Program mal im Motif-Style probiert, und da funktioniert alles.
Es schein also am WinXP-Style zu liegen.
Falls jemand da eine Idee hat, dann wäre ich dafür sehr dankbar.
EDIT Ende!
Danke im Voraus,
Prof. MAAD