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

时间:2010-12-16 06:54:51

标签: c++ qt user-interface stylesheet

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

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

还尝试在后台删除“:”,但没有任何区别。有人能告诉我这个StyleSheet有什么问题吗?

2 个答案:

答案 0 :(得分:15)

您要使用的图片位于何处?

您是否将其作为申请的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/。在发布模式下运行应用时,当前路径位于release/(除非您更改了设置)。

答案 1 :(得分:1)

显然,您的图片路径存在问题。尝试使用绝对路径来验证图像是否由QT加载并正常工作。