Qt直接给QWidget设置背景图片不会起效果,但是可以通过QFrame起效。也就是先布置一层QFrame,然后把其他控件都放在QFrame上,然后设置qss的时候设置在QFrame上。测试代码如下:
#include "testFrame.h"
#include <QFile>
testFrame::testFrame(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
QFile qssfile("testFrame.qss");
qssfile.open(QFile::ReadOnly);
this->setStyleSheet(qssfile.readAll());
}
qss代码如下:
QFrame#frame
{
border-image:url(codeRain.jpg)
}

效果如下:

会有一个边框。可以设置layout的margin让它消失。
操作如下:

效果如下:

可以看见白色边框已经去掉了。

本文介绍了如何通过QFrame和QSS在Qt界面中为QWidget添加背景图片。当直接设置QWidget的背景图片无效时,可以创建一个QFrame作为容器,并设置其QSS样式来实现背景图片显示。同时,通过调整QSS的border-image属性和layout的margin,可以去除边框,达到理想的界面效果。
1567

被折叠的 条评论
为什么被折叠?



