QT 添加背景图像并图像自适应窗口大小

时间:2019-04-04

背景:这段时间由于项目比较闲,所以前来开发一个QT工具供以后使用,由于个人有“完美追求”因此偏要给工具加上一个漂亮的图像背景。

问题:参考网上许多关于QPalette+QPixmap 或者 用stylesheet实现添加背景图像的,但却未能找到能够图像自适应窗口大小的方式,为此特地拿出来后面找到的QPalette + QImage方式实现添加背景图像,又能自适应大小的方案。

代码1:常用设置QT背景图像方式

QPalette PAllbackground = this->palette();
QPixmap ImgAllbackground(":/resource/allbackground.png");
PAllbackground.setBrush(QPalette::Window, QBrush(ImgAllbackground));
this->setPalette(PAllbackground);

上述代码可以设置窗口的背景图像,但是不能自适应窗口大小。

代码2:改进版设置QT窗口背景图像方式(自适应窗体大小)

QPalette PAllbackground = this->palette();
QImage ImgAllbackground(":/images/369.jpg");
QImage fitimgpic=ImgAllbackground.scaled(this->width(),this->height(), Qt::IgnoreAspectRatio);
PAllbackground.setBrush(QPalette::Window, QBrush(fitimgpic));
this->setPalette(PAllbackground);

上述两个代码中,一个用的是QPixmap ,后者是QImage ,后者正是应用的图像类的特性对原图像进行缩放操作,使得图像自适应窗口大小。

你可能感兴趣的:(linux学习笔记)