我的問題如下: 我正在使用PyQt5,我想使用外部樣式表,這意味着我在.qrc文件中引用了.qss文件,並且我想在我的代碼中應用這個。如何從資源添加.qss文件
現在我的問題是我將如何加載這個文件和什麼格式這需要。例如,
sty_f = open(":/Style/style.qss","r")
導致FileNotFound錯誤。雖然根據資源文件,它應該在那裏。
sty_f = QtCore.QFile(":/Style/style.qss")
sty_f.open(QtCore.QIODevice.ReadOnly)
,另一方面
沒有問題找到引用的文件,但產生QByteArray
是APP.setStyleSheet(sty_f.readAll())
不能使用。只要將其轉換爲str APP.setStyleSheet(str(sty_f.readAll()))
就會導致Could not parse application stylesheet
錯誤。
最後但並非最不重要的:
sty_f = open("PATH/style.qss","r")
APP.setStyleSheet(sty_f.read())
作品。現在有沒有辦法使用資源文件來工作?什麼部分可能有缺陷,因爲他們都工作,但不是在同一時間?
更新:什麼工作,以及爲:
sty_f = QtCore.QFile(":/Style/style.qss")
sty_f.open(QtCore.QIODevice.ReadOnly)
APP.setStyleSheet(((sty_f.readAll()).data()).decode("latin1"))
但仍然問題是有沒有更好的方式將這個爛攤子不覺得是最佳的解決方案這樣做。
正如說沒有解碼我只是得到一個「無法解析應用程序樣式表」 - 錯誤。我的樣式表只包含#ALL_ASCII_NAME {color:red}。這應該是所有ascii。無論如何,真的需要一個樣式表,但是我真的很想知道它是如何工作的。 – haxor789
@ haxor789。對不起,我可以發誓,這就是爲什麼我錯過了你的問題的一部分。無論如何,我已經用不同的解決方案解決了我的問題,這應該可以正常工作。 – ekhumoro