我正在使用PySide并尝试动态重新设置UI。
这似乎适用于在样式表之间切换,但不适用于在Widgets上设置的值。
我在CSS中使用相对路径,如下所示:
background-image: url(:/icons/images/magnifier.png)
我可以使用从qrc文件编译的py文件来应用这些CSS样式,如下所示:
execfile(pyResourceFilePath, globals())
with open(cssFilePath, 'r') as f:
css = f.read()
topWidget.setStyleSheet(css)
......这有点笨拙,但有效。
但是,如果我在创建小部件时尝试使用这些相对路径:
icon = QtGui.QIcon()
icon.addPixmap(
QtGui.QPixmap(":/icons/images/arrow-expand.gif"),
QtGui.QIcon.Normal,
QtGui.QIcon.Off
)
execfile(pyResourceFilePath, globals())
图像不会出现。
使用上面的绝对路径可以显示图像,因此它似乎与小部件如何理解在哪里查找资源有关。
我试过摆弄 QtCore.QResource.registerResource(pyResourceFilePath),但也没有取得任何成功。
有什么想法吗?
在一些对话之后,很明显pixmaps中的资源需要某种更新(我猜这正是CSS应用时的实际情况)。
使用相同路径但在新资源下更新任何现有像素图的有效方法是什么?