我正在通过带有参数 -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/