在 QT 样式表中使用相对 url

Posted

技术标签:

【中文标题】在 QT 样式表中使用相对 url【英文标题】:Using relative url in QT stylesheet 【发布时间】:2017-07-06 17:19:58 【问题描述】:

我正在处理一个 qt 项目并希望将所有图像文件设置为相对,但我无法使用通常的父 url 引用访问图像。

image:url('../sources/status/status.png');

不过,我可以使用图像的绝对路径加载图像。

【问题讨论】:

路径是相对于你的源代码还是可执行文件的位置? 你用的是python还是C++? 它与源代码和可执行文件的位置有关。 我正在使用 python。 如果您使用的是 python,则没有可执行文件。 【参考方案1】:

最好使用Qt Resource System。您的资源的依赖项将包含在您的可执行文件中,然后您不必共享文件夹树。

您可以使用资源 url 在 QSS 代码中设置图像。

使用您的所有图像创建资源,您可以使用 Qt Creator IDE 轻松设置它。如果您愿意,可以添加自己的前缀以与其余资源区分开来。

<!DOCTYPE RCC><RCC version="1.0" prefix="/">
<qresource>
   <file>../sources/status/status.png</file>
   <file>../sources/status/example_1.png</file>
   <file>../sources/status/example_2.png</file>
   <file>../sources/status/example_3.png</file>
</qresource>
</RCC>

然后,如果您的前缀是“/”,则将其用于您的 QSS:

image:url(':/../sources/status/status.png');

【讨论】:

以上是关于在 QT 样式表中使用相对 url的主要内容,如果未能解决你的问题,请参考以下文章

Qt 在样式表中使用调色板颜色

如何在Ubuntu上的某些样式表中运行qt creator?

使用悬停和按下样式表 Qt

通过Qt样式表定制程序外观(比较通俗易懂)

Qt 中的样式表、隐藏的小部件和大小

如何在 webpack 中加载 sass 样式表中使用的图像?