setBackgroundRole ( QPalette::ColorRole role )

Alles rund um die Programmierung mit Qt
Antworten
graythornWW
Beiträge: 38
Registriert: 20. Oktober 2008 09:48

setBackgroundRole ( QPalette::ColorRole role )

Beitrag 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
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Beitrag 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();
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
Antworten