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
QPushButton einfärben, ohne native Form zu verlieren?
-
-=Freaky=-
- Beiträge: 503
- Registriert: 29. Dezember 2006 22:54
- Wohnort: HL
-
-=Freaky=-
- Beiträge: 503
- Registriert: 29. Dezember 2006 22:54
- Wohnort: HL
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).upsala hat geschrieben:In der Palette die Button-Farbe ändern (Kann man auch im Designer testen)
gruesse
julian
Hier unter Linux funktioniert das wunderbar:
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.
Code: Alles auswählen
QPalette pal = button.palette();
pal.setColor(QPalette::Button, Qt::red);
button.setPalette(pal);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
ich bin gerade an einem anderen rechner mit gnome und aktuellem Qt, und hier funktioniert genau das auch nicht.
was ich eben probiert habe:
das einfach in main(), und die beiden buttons unterscheiden sich kein stueck (vom text mal abgesehen) ...
gruesse
julian
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();gruesse
julian