在虚拟环境中使用qt-materials时找不到图标
qt-materials在虚拟环境(venv)中的不同表现
我目前正在开发一个PySide6应用程序,并使用 qt-materials 库来设置应用程序的样式表。起初,我是在全局site-packages下开发。因为这并不是最佳实践,所以我改为在虚拟环境(venv)中开发。这单独导致了一些自定义UI元素消失。我也尝试过在venv中运行qt-materials的完整示例并使用全局包,结果相同。
qt-materials库并非这里的根本原因
我最初的猜测是qt-materials在错误的位置搜索所需的SVG文件。通过调用 apply_theme(...),qt-materials会创建一个新的目录 C:/Users/.../.qt_material/theme/,所有图标都位于该目录。此外,QSS文件随后只使用一个前缀(icon:/...)。于是我尝试
- 将前缀替换为绝对路径,并
- 从主题创建一个
qrc-资源文件,然后应用它
然而,任何一种方法都没有正常工作。
然后我注意到,我添加到资源文件中的另一张SVG图像也没有显示。只有在使用一个 jpeg-file时才可以渲染。
解决方案
qt-materials库工作正常;但 svg-渲染在PySide6中似乎默认被禁用。
如何解决
修复其实很简单:在创建 QApplication 的文件中添加以下import语句,所需的 svg-files应按预期渲染。
import PySide6.QtSvg
示例
from PySide6.QtWidgets import QApplication
import PySide6.QtSvg # to enable svg rendering
import sys
app = QApplication(sys.argv)
# your code
app.exec()
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。