Wie Stil QPushButton geprüft, ist-Zustand zum entfernen von grauen Flecken?
Ich bin mit Qt 5.3.0. Wenn ich einige hintergrund-Farbe auf dem QPushButton geprüft, ist-Zustand, die Taste wird gefüllt mit grauen Punkten (über die hintergrund-Farbe, die ich wollte), wenn es aktiviert ist.
Hier ein kleines test-Programm (mit qtcreator, aber es kann auch getan werden, mit Codierung):
1 erstellen Sie eine qt-Anwendung
2, ziehen Sie in ein QPushButton, legen Sie es flach und überprüfbar
3, fügen Sie diese Zeilen vor dem w ist.show()
w.setStyleSheet("\
QPushButton { \
color:white; \
} \
QPushButton:checked{\
background-color: rgb(80, 80, 80);\
}\
QPushButton:hover{ \
background-color: grey; \
border-style: outset; \
} \
");
4 führen Sie die app und überprüfen Sie die Schaltfläche
Du wirst sehen, die Taste wird auf die punktierten aber ich brauche das überprüft-Taste, um in der festen Farbe, die als rgb(80, 80, 80).
Hab ich was verpasst?
InformationsquelleAutor h5nc | 2014-07-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin in der Lage, entfernen Sie die Punkte, indem Sie einfach
border: none;
auf dieQPushButton:checked
Eigentum der stylesheet.Auf dein Beispiel sollte es so sein:
Hier sehen Sie das Ergebnis, wenn die Schaltfläche aktiviert ist:
Auf diese Seite: qt-project.org/doc/qt-4.8/stylesheet-reference.html hat eine Warnung: "Wenn du nur einen hintergrund-Farbe auf ein QPushButton, der hintergrund möglicherweise nicht angezeigt, es sei denn, Sie setzen die border-Eigenschaft auf einen bestimmten Wert. Das ist, weil standardmäßig die QPushButton zieht eine native Grenze, die vollständig überlappt die hintergrund-Farbe.", und ich erinnere mich, dass in einigen Situationen, entfernen Sie die Grenze löst mein problem. Ich kann Ihnen nicht genau sagen warum, aber es funktioniert.
Danke für die Antwort und den link zu der Referenz. Wirklich hat mich gerettet heute!
InformationsquelleAutor Antonio Dias