Ich habe ein Problem mit der Einstellung border-image
Eigenschaft eines QToolButton
(später auch von einem QPushButton
, aber ich nehme an, das Problem wird auch dort auftreten). Jede meiner benutzerdefinierten Schaltflächen (die von QToolButton
bzw. QPushButton
stammen) muss 3 Zustände haben - inaktiv, running und error.QStyleSheet - Einstellung Rand-Bild für Button setzt auch Hintergrundbild für seine Tooltip
Inaktiv:
style = 'border-top-right-radius: ' + str(self.cornerRadius) + 'px; border-bottom-right-radius: ' + str(self.cornerRadius) + 'px; border-top-left-radius: ' + str(self.cornerRadius) + 'px; border-bottom-left-radius: ' + str(self.cornerRadius) + 'px; border-image: url("' + self.icon + '"); background: none;'
Running:
style = 'border-top-right-radius: ' + str(self.cornerRadius) + 'px; border-bottom-right-radius: ' + str(self.cornerRadius) + 'px; border-top-left-radius: ' + str(self.cornerRadius) + 'px; border-bottom-left-radius: ' + str(self.cornerRadius) + 'px; border-image: url("' + self.icon + '"); background: rgb(89, 205, 139);'
Fehler:
style = 'border-top-right-radius: ' + str(self.cornerRadius) + 'px; border-bottom-right-radius: ' + str(self.cornerRadius) + 'px; border-top-left-radius: ' + str(self.cornerRadius) + 'px; border-bottom-left-radius: ' + str(self.cornerRadius) + 'px; border-image: url("' + self.icon + '"); background: rgb(215, 56, 56);'
wo self.cornerRadius
ist eine Zahl, die verwendet wird, um die Rundheit meiner Schaltflächen in Pixeln zu bestimmen, und self.icon
ist ein Symbol, das ich irgendwo abgerufen habe.
Alles, was ich meine Taste Konstruktor tue in (unter anderem einfachen Initialisierungen) ist
self.setStyleSheet(style)
Das clicked()
Signal der Taste zu einem Schlitz in der gleichen Klasse verbunden ist, in dem der Staat (zusammen mit dem Stil geändert wird Verwendung von self.setStyleSheet(...)
) in Bezug auf den neuen Zustand des Systems ist.
Aus unbekannten Gründen meine Tooltip die Stiländerungen der Taste „gehört“ er erhält:
Ich habe doppelt überprüft die Qt documentation und ich sehe keinen Grund, die dieses Verhalten erklären . Ich möchte den Tooltip-Stil NICHT ändern. Irgendwelche Ideen, wie das zu beheben ist?
* facepalm * Ich habe die Eltern-Kind-Propagierung für Stylesheets komplett vergessen. Danke, dass Sie darauf hingewiesen haben und auch, um die Antwort auf den allgemeinen Fall zu erweitern. PS: Es ist das gleiche für Qt C++, wenn in PyQt in Bezug auf Stylesheet getan. – rbaleksandar