2016-04-10 11 views
0

Wie wird in QPushButton nur ein Artikel mit setStyleSheet geändert? Das Wort "Element" oder "Element" meine ich "Hintergrundfarbe", "Rahmenfarbe", "Rahmenradius" und so weiter. Wenn Sie das tun so:Änderung im styleSheet

setStyleSheet("QPushButton {" 
        "background-color: blue;" 
        "}"); 

die übrigen Elemente (border-radius, ...) Standard. Und ich möchte nur eines der Elemente ändern, das andere nicht berühren. Zum Beispiel habe ich QPushButton mit Sheet wie folgt:

setStyleSheet("QPushButton {" 
         "background-color: blue;" 
         "border-radius: 5"; 
"}"); 

wenn ich border-radius diese Art und Weise ändern möchten:

setStyleSheet("QPushButton {" 
          "border-radius: 10"; 
    "}"); 

ich auf Standardwert auch background-color ändern, aber ich möchte nur ändern border-radius (andere Elemente ändere ich nicht).

+0

Können Sie klären, was Sie mit * standardmäßig schmelzen * meinen? Screenshots von dem, was Sie wollen und was Sie bekommen, würde auch viel helfen. –

+0

@ Frédéric Hamidi Ich änderte die Frage –

Antwort

3

Von Qt Style Sheets Examples:

Wenn wir die Eigenschaft gelten nur für einen bestimmten QLineEdit wollen wir kann es einen Namen geben QObject::setObjectName() und verwenden Sie eine ID Selector darauf verweisen:

myDialog->setStyleSheet("QLineEdit#nameEdit { background-color: yellow }"); 

immer durch die erste Dokumentation des Qt suchen. Es ist eines der besten, die ich je gesehen habe.

+0

Entschuldigung, das Wort "Element" meine ich "Hintergrund-Farbe", "Grenze-Farbe", "Grenze-Radius", ... –

+0

@Tapac Sie könnten versuchen, mehrere Stylesheets (String-Verkettung verwenden) und dann Objektnamen dynamisch ändern. Lass mich über das Ergebnis wissen. – LogicStuff