QWidget窗体设置背景颜色、背景图、及其注意点
前言
QT设置背景图笔录
一、使用调色板QPalette来设置图片
注意点:
该方法对设有样式表的QWidget对象不会生效
首先获得Widget的调色板,再设置调色板背景(setBrush),最后将调色板设置到Widget中
//获得widget的palette
QPalette palette = this->palette();
palette.setBrush(QPalette::Window,
QBrush(QPixmap(":qss_icons/rc/networkBack11.png").scaled( // 缩放背景图.
this->size(),Qt::IgnoreAspectRatio, //不限制原图片的长宽比
Qt::SmoothTransformation))); // 使用平滑的缩放方式
this->setPalette(palette);
效果图:
二、使用样式表QSS
注意点:
该方法对设有样式表的QWidget对象不会生效
1、设置颜色
this->setStyleSheet("background-color:rgb(211,111,211)");
效果图:
2、设置图片
this->setStyleSheet("border-image:url(C:/Users/ZML/Desktop/Files/24.png)");
效果图:
这种方法,图片不是自适应的
三、使用画笔Qpainter在paintEvent事件中绘制图片
注意点:
该方法会干掉一切的API与样式表
该部分要记得放在对应class头文件内
protected:
void paintEvent(QPaintEvent *);
1、画颜色
void background::paintEvent(QPaintEvent *)
{
QPainter p(this);
p.setPen(Qt::NoPen);
/* 设置红色 */
p.setBrush(Qt::red);
p.drawRect(rect());
}
效果图:
2、画图片
void background::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.drawPixmap(rect(),QPixmap(":C:/Users/ZML/Desktop/Files/24.png"),QRect());
}
效果图: