QPushButton einfärben, ohne native Form zu verlieren?

Alles rund um die Programmierung mit Qt
Antworten
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

QPushButton einfärben, ohne native Form zu verlieren?

Beitrag von -=Freaky=- »

nabend,

faellt hier vielleicht jemandem eine einfache Möglichkeit ein, einen QPushButton einzufärben (hintergrundfarbe), ohne seine Form zu verlieren (die der nativen buttons, die gezeichnet werden)?
das scheint nicht so einfach zu sein, logischer weise, weil der button dann ja nicht mehr richtig nativ waere.
mit einfachen style sheets/styles funktioniert das offenbar nicht, und wenn ich ein icon benutze, kann man scheinbar keinen text mehr darauf anzeigen.
aber falls es doch eine methode gibt, sowas anzustellen, wuerde ich sie gerne probieren.
ich bin also fuer alle hinweise ueberaus dankbar.

vielen dank im voraus
julian
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

In der Palette die Button-Farbe ändern (Kann man auch im Designer testen)
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Beitrag von -=Freaky=- »

upsala hat geschrieben:In der Palette die Button-Farbe ändern (Kann man auch im Designer testen)
das habe ich bereits versucht, ich habe auch mal testweise die komplette Palette (jede Farbe) auf dieselbe geaendert, und zumindest hier unter linux hat das mit keinem der standard-styles (qtconfig) funktioniert, es aenderte sich gar nichts (weder im designer, noch wenn ich es im code selbstgemacht habe).

gruesse
julian
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Hier unter Linux funktioniert das wunderbar:

Code: Alles auswählen

QPalette pal = button.palette();
pal.setColor(QPalette::Button, Qt::red);
button.setPalette(pal);
Und schwupps hat der button eine rote Hintergrundfarbe.

Das geht mit allen probierten Styles: windows, motif, qtcurve, bespin, cleanlooks, plastique.
Wenn es bei dir nicht geht -> Code Plz.
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Beitrag von -=Freaky=- »

ich bin gerade an einem anderen rechner mit gnome und aktuellem Qt, und hier funktioniert genau das auch nicht.
was ich eben probiert habe:

Code: Alles auswählen

QPushButton btn("BTN1");
QPalette pal = btn.palette();
pal.setColor(QPalette::Button, Qt::red);
btn.setPalette(pal);
btn.show();

QPushButton btn2("BTN2");
btn2.show();
das einfach in main(), und die beiden buttons unterscheiden sich kein stueck (vom text mal abgesehen) ...

gruesse
julian
Antworten