mein Problem ist das folgende: Ich arbeite mit PyQt5 und ich möchte ein externes Stylesheet verwenden, was bedeutet, dass ich eine .qss habe, die in meiner .qrc-Datei referenziert wird Ich möchte dies in meinem Code anwenden.Wie man eine .qss Datei von Ressource
Jetzt ist meine Frage, wie soll ich diese Datei laden und welches Format benötigt dies. Zum Beispiel
sty_f = open(":/Style/style.qss","r")
führt zu einem FileNotFound-Fehler. Obwohl laut der Ressourcendatei sollte es da sein.
sty_f = QtCore.QFile(":/Style/style.qss")
sty_f.open(QtCore.QIODevice.ReadOnly)
auf der anderen Seite hat kein Problem, die referenzierte Datei zu finden, sondern erzeugt eine QByteArray
dass APP.setStyleSheet(sty_f.readAll())
nicht verwenden kann. Wenn Sie es einfach in eine Str APP.setStyleSheet(str(sty_f.readAll()))
konvertieren, wird ein Could not parse application stylesheet
Fehler ausgegeben.
Und last but not least:
sty_f = open("PATH/style.qss","r")
APP.setStyleSheet(sty_f.read())
funktioniert. Jetzt gibt es eine Möglichkeit, es auch mit der Ressourcendatei arbeiten zu lassen? Und welcher Teil könnte fehlerhaft sein, da alle funktionieren, aber nicht gleichzeitig?
Update: Was auch funktioniert, ist:
sty_f = QtCore.QFile(":/Style/style.qss")
sty_f.open(QtCore.QIODevice.ReadOnly)
APP.setStyleSheet(((sty_f.readAll()).data()).decode("latin1"))
aber immer noch die Frage, gibt es eine bessere Art und Weise, um die Umwandlung dieses Chaos zu tun, fühlt sich nicht die optimale Lösung zu sein.
Wie gesagt, ohne die Decodierung bekomme ich nur ein "konnte nicht Anwendung Stylesheet analysieren" -Error. Und mein Stylesheet besteht nur aus # ALL_ASCII_NAME {color: red}. Was alles Ascii sein sollte. Vielleicht ist es sowieso nicht schick genug, um wirklich ein Stylesheet zu brauchen, aber ich würde gerne wissen, wie es funktionieren würde. – haxor789
@ haxor789. Tut mir leid, ich hätte schwören können, dass das funktioniert hat, weshalb ich diesen Teil Ihrer Frage verpasst habe. Wie auch immer, ich habe meine Antwort mit einer anderen Lösung aktualisiert, die richtig funktionieren sollte. – ekhumoro