Qt: Button färben



  • Ich versuche einen Button einzufärben und stelle fest, daß es unter dem Style cleanlooks funktioniert und mit Style Windows nicht. Zum Einfärben hab ich pallette::button gesetzt. Kann es sein, daß manche Stile (wie eben Windows) diese Palettenänderungen ignorieren? Wie kann ich den Button trotzdem färben?



  • Prinzipiell kann ein Style mit der Palette machen was er will.

    void QStyle::polish ( QPalette & palette ) [virtual]

    This is an overloaded function.

    Changes the palette according to style specific requirements for color palettes (if any).

    See also QPalette and QApplication::setPalette().

    Ein absolut striktes Einhalten wäre ja auch optisch langweilig 😉
    Da macht man Farbverläufe, Rahmen, Schatten, Hovereffekte usw. Ein Button der sich farblich nur minimal vom WindowBackground abhebt und nen leichten Rahmen in QPalette::Button hat, dafür bei nem MouseEnter animiert auf komplett QPalette::Button umschwenkt ist doch cool 😉

    Außerdem kann man durch geschicktes Abändern der Werte den Kontrast der Applikation beeinflussen.

    Also nicht erwarten, dass das was in der Palette steht auch vom Style so strikt umgesetzt wird.
    Dazu mal nur hierzu aus der Doku:

    QPalette::Button schrieb:

    The general button background color. This background can be different from Window as some styles require a different background color for buttons.

    Schau dir mal QPalette::Window an.

    Ansonsten ist auch Experimentieren mit QWidget::setStyleSheet lohnend.



  • Ob langweilig oder nicht, da muß der Style mit dem Button in der Farbe rein. Angucken werd ich mir die Sachen aber mal.


Anmelden zum Antworten