Seite 1 von 1

setBackgroundRole ( QPalette::ColorRole role )

Verfasst: 12. Januar 2010 09:02
von graythornWW
Kann mir bitte jemand bei dem Befehl

Code: Alles auswählen

QWidget::setBackgroundRole ( QPalette::ColorRole role )
helfen?

Ich habe einen Pushbutton, aber egal welchen Parameter ich bei der Methode angebe, der Button sieht immer gleich aus.
Eigentlich will ich keinen Hintergrund zeichnen, sondern nur den Rahmen und den Text. Gibt es eine andere Methode das zu schaffen?

Kann ich vielleicht den paintEvent() ent überschreiben und nur die benötigten Komponenten zeichnen, natürlich mit Hilfe geeigneter Qt-Methoden, look and feel soll ja gleich bleiben, also irgend etwas in der Form QWidget::drawDenText(), QWidget::drawDenRahmen()... und QWidget::DrawDenMouseHoverEffekt().....

Danke und Gruß
Andreas

Verfasst: 13. Januar 2010 20:32
von 24dan
Hi um Elemente Layout zu ändern kannst Du Style-sheets verwenden hier mal eine Beispiel:

Code: Alles auswählen

        QString button ="border: 2px solid #8f8f91;"
                      "border-radius: 6px;"
                      "background-color: qlineargradient(x1: 0, y1: "
                      "0, x2: 0, y2: 1, stop: 0 #f6f7fa, stop: 1 #dadbde);"

    QMessageBox msgBox;
    QPushButton *jaButton = msgBox.addButton("jahallo", QMessageBox::ActionRole);
    QPushButton *lassDasButton = msgBox.addButton("okayNein", QMessageBox::DestructiveRole);
    msgBox.setWindowTitle("titel");
    msgBox.setText("test");
    msgBox.setModal(true);
    msgBox.setStyleSheet(button );
    jaButton->setStyleSheet(button );
    lassDasButton->setStyleSheet(button );
    msgBox.exec();