QSS将图像存储在外部二进制/加密资源中

时间:2016-12-08 07:22:26

标签: c++ qt qtstylesheets

我正在为我的应用程序设计主题支持,我想将整个主题保存在单个二进制文件中,因此无法使用简单的文本和图像编辑器编辑主题。主题包含所有窗口的qss,图标包和一些其他数据。我的问题是qss希望所有图标都作为png文件放在文件夹中,例如:

QDockWidget
{
    titlebar-close-icon: url(theme/images/close.png);
    titlebar-normal-icon: url(theme/images/maximize.png);
}

所以我的问题是 - 如何将qss中使用的所有图像保存在一个二进制和/或加密文件中,然后从qss中使用它们以避免所有图像都作为png文件放置?

编辑:

尝试从二进制资源加载某些内容.rcc:

1)用图像创建qssimages.qrc:

<RCC>
    <qresource prefix="/images">
        <file>images/arrow_state_right.png</file>
        ...
    </qresource>
</RCC>

2)用rcc编译为qssimages.rcc

3)将rcc放置到主题文件夹

4)注册资源文件:

qDebug()<<"register"<<QResource::registerResource(QApplication::applicationDirPath() + "/theme/qssimages.rcc");

输出是:

register true

5)尝试从rcc加载pixmap:

qDebug()<<QPixmap(":/images/arrow_state_right.png");

输出是:

QPixmap(null)

我错过了一些明显的东西吗?

0 个答案:

没有答案