我有一个独立的qss样式表,它包含我的整个应用程序的样式表定义。我需要添加一个关闭按钮作为背景图像,因为我找不到使用内置图标的文档。
customTabBar::close-button {
padding: 0px;
margin: 0px;
border-radius: 2px;
border-color: rgba(0, 0, 0, 50%);
background-image: url(%(closeIcon)s);
background-position: center center;
background-repeat: none;
}from fbs_runtime.application_context.PyQt5 import ApplicationContext
import qstylizer.parser
customIcons = {
"customTabBar::closeButton.backgroundImage": f"url({app.get_resource('ui/close.png')})",
}
app = ApplicationContext()
with open(app.get_resource("app.qss"), "r") as stylesheet:
css = qstylizer.parser.parse(stylesheet.read())
for key, value in customIcons.items():
property = key.split(".")
css[property[0]][property[1]].setValue(value)
app.app.setStyleSheet(css.toString())这些文件存储在默认的fbs结构中,在src/main/resource/base/ui/*..png下面。
因为我不能使用fstring,而大括号是qt的一部分。和使用python格式的这个答案,但是由于我有一些rgba颜色值,其中也包含%,所以我一直得到一些关键错误。
由于我不能使用%ages或大括号,所以我正在考虑用get_resource构建一个qproperty,但我不知道如何构建。我需要我的qss交叉兼容,不能逃脱我的花括号。
我的主要问题是,当我使用fbs冻结打包应用程序wtih FBS时,映像将不可用。
发布于 2020-07-07 01:51:19
根据@eyllanesc的建议,这是我的解决方案。rcc文件,
<RCC>
<qresource>
<file alias="closeIcon">close.png</file>
</qresource>
</RCC>shell命令,
pyrcc5 -o resources.py resources.rcc这是样式表。
TabBarPlus::close-button {
background-image: url(:/closeIcon);
padding: 0px;
margin: 0px;
border-radius: 2px;
background-position: center center;
background-repeat: none;
}https://stackoverflow.com/questions/62453570
复制相似问题