时间: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 ,后者正是应用的图像类的特性对原图像进行缩放操作,使得图像自适应窗口大小。