在Pyside

时间:2015-08-28 18:39:51

标签: qt resources pyside

我正在使用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应用时的实际情况)。

使用相同路径但在新资源下更新任何现有像素图的有效方法是什么?

0 个答案:

没有答案