c++ - 无法在 Qt 样式表中设置背景图像

标签 c++ qt user-interface stylesheet

我正在通过带有参数 -stylesheet 的命令行运行我的 Qt 应用程序。控件的样式有效,但在我尝试为 MainWindow 加载背景图像时无效。 我试过了:

QMainWindow{
background-image:url(:image_256_8bit_latest_back.png);
}

也尝试删除背景中的“:”,但没有任何区别。有人能告诉我这个样式表有什么问题吗?

最佳答案

您尝试使用的图像位于何处?

你把它写成resource了吗?你的应用程序?

如果您想使用作为资源一部分的图像,您的项目中应该有一个资源文件 (*.qrc)。该文件应包含如下内容:

<RCC>
   <qresource prefix="/images">
      <file alias="sunset.jpg">sunset.jpg</file>
   </qresource>
</RCC>

然后,您可以在QMainWindow 的构造函数中编写此代码:

setStyleSheet("background-image: url(:/images/sunset.jpg);");

如果您不想使用 Qt resource system ,您可以将图像的路径放在磁盘上:

setStyleSheet("background-image: url(res/images/sunset.jpg);");

如果您使用相对路径,请小心:Qt 将从当前位置开始,这可能会改变,特别是如果您使用 Qt Creator 进行开发。

使用 Qt Creator,当您在 Debug模式下运行应用程序时,当前路径位于 debug/ 中。当您在 Release模式下运行应用时,当前路径位于 release/ 中(除非您更改了设置)。

关于c++ - 无法在 Qt 样式表中设置背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4458201/

相关文章:

java - 是否有在 Swing 中生成 CRUD UI 的工具或框架?

java - 并非所有组件都显示

c++ - 如何在 OpenMP 中使用锁?

C++ 代码出现段错误,我不知道为什么

python - 无法找到或加载 Qt 平台插件 "windows"-- cx_freeze(.exe)

c++ - 为什么知道字节流中的字节是什么?

python - 默认情况下 Python 变量是全局变量吗?

c++ - 在超出范围期间调用类的析构函数

c++ - 子类小部件以在其中插入其他小部件

java - Swing GUI 与域逻辑通信的最佳方式?