Ich habe eine Frage über QPushbutton Zustände Übergang.QPushbutton states Übergang: fehlende "gedrückt" Zustand
Ich leitete eine Klasse, sagen wir MyQPushButton, von QPushButton. Denn es stelle ich einige visuellen Eigenschaften durch Sheet:
Qt-Code: Ansicht wechseln
MyQPushButton
{
background-color: transparent;
border-image: url(<InstallationPath>/Resources/Images/Buttons/MyQPushButton_a.png);
}
MyQPushButton:pressed {
background-color: transparent;
border-image: url(<InstallationPath>/Resources/Images/Buttons/MyQPushButton_b.png);
}
MyQPushButton:disabled {
background-color: transparent;
border-image: url(<InstallationPath>/Resources/Images/Buttons/MyQPushButton_d.png);
}
MyQPushButton:checked {
background-color: transparent;
border-image: url(<InstallationPath>/Resources/Images/Buttons/MyQPushButton_c.png);
}
in der Zwischenablage, Schalter Blick auf Klartext-Modus
Interagieren mit einer prüfbaren MyQPushButton Instanz zu kopieren, image "MyQPushButton_b" (gedrückter Zustand) erscheint nur für eine Weile, wenn Sie während des Übergangs von unmarkiert auf checked auf den nicht markierten Zustand klicken. Ich würde erwarten, das gleiche Bild für eine Weile auch durch Klicken auf es auf überprüfter Zustand zu sehen (Übergang rückwärts) wie in der Dokumentation http://doc.qt.io/qt-5/qabstractbutton.html berichtet wird:
„Wenn der Benutzer einen Toggle-Button klickt, um es zu überprüfen, die Taste wird zuerst gedrückt und dann in den aktivierten Status freigegeben. Wenn der Benutzer erneut darauf klickt (um es zu deaktivieren), bewegt sich die Schaltfläche zuerst in den gedrückten Zustand und dann in den nicht aktivierten Zustand. "
Ist meine Interpretation falsch? Umgekehrt, wie könnte ich das gedrückte Zustand "zwingen", das entsprechende Bild zu zeigen, das während des aktivierten - ungeprüften Übergangs gezeigt wird?
Danke !!!
IR
Hallo Jon, vielen Dank für Ihren Hinweis! Indem ich im Stylesheet einfach "gedrückt" durch "runter" ersetze (wenn ich dich gut interpretiert habe), bekomme ich keine sofortige Lösung für mein Problem. Ich bin mir jedoch sicher, dass ich Ihren Hinweis umgehen kann ... zum Beispiel indem ich einen Ereignisfilter auf Checkable MyQPushButton-Instanzen installiere und die von Ihnen vorgeschlagene Eigenschaft isDown() überprüfe! Coming news ... – ilariari
Da die Schaltfläche überprüfbar ist, könnten Sie versuchen, den Status "down" * nach * "checked" in Ihrem CSS zu setzen. @ilariari –
Kein Weg, auch ein neues CSS-Element einzuführen: MyQPushButton: checked [down = "true"] {...} –
ilariari