Seite 1 von 1

QMessageBox -> Stylesheets

Verfasst: 13. Juni 2009 15:30
von vii2us
hallo,
ich möchte die Buttons in einer Standart-Messagebox unterschiedlich designen. Dafür habe ich folgendes probiert:

QPushButton#Yes {
....
}

QPushButton#No {
...
}

leider Funktioniert das ganze nicht. Könnte mir jemand sagen wie man das machen kann? QPushButton {..} geht, aber möchte ja jeden Button anderst gestalten.

vielen Dank schonmal!

Verfasst: 13. Juni 2009 15:54
von Mani99
Du musst von dem button den object name "Yes" benennen, dann funktioniert dein code!

Code: Alles auswählen

QPushButton *btn = new QPushButton(this);
btn->setObjectName("Yes");

QPushButton#Yes {
....
}
Das beispiel ist nur allgemeiner code, also nicht speziell für die buttons einer messagebox. Die buttons musst du dir irgendwie organisieren und dann den object name setzen.

Lies dir in der doku den teil zu stylesheets durch, dann wird dir klar wie das funktioniert.

Verfasst: 14. Juni 2009 10:26
von vii2us
aber über die StandartButtons

QMessageBox msgBox(this);
msgBox.setStandardButtons(QMessageBox::Yes |QMessageBox::No);

geht es nicht oder?

Verfasst: 14. Juni 2009 11:07
von franzf
Ach komm, schau doch mal in die Doku :(
QMessageBox hat schöne Methoden, die man sich mal anschauen sollte.

Du kannst a) selber nen Button hinzufügen, und den objectName setzen.
Aber auch b) ganz einfach die hier verwenden:
QAbstractButton * button ( StandardButton which ) const
Dann noch den objectName() abfragen und ab ins StyleSheet damit.