概述
在窗口程序中,当我们改变窗口大小的时候,背景图片通常会岁窗口大小变化而缩放
然而,在我们写的窗口程序中,设置背景图片后,如果缩放大小,会看到背景图片并不会随之缩放,
应为这需要特殊处理,一般常用的方法就是 改变设为背景图片的 pixmap 的大小,在发生resize事件的时候,
将改变完大小的pixmap重新设置为有新size窗口的背景图片
来源:http://www.csdn123.com/html/itweb/20130721/11636_11627_11632.html
主要的实现代码如下:亲测
1 //设置背景图片 2 void Widget::setBackgroundImage(QPixmap&pixmap) 3 { 4 //判断图片是否为空 5 if(pixmap.isNull()){ 6 qDebug() << tr("illege arguments") <<endl; 7 return; 8 } 9 //设置窗口的背景 10 QPalette palette = this->palette(); 11 palette.setBrush(this->backgroundRole(), 12 QBrush(pixmap.scaled(this->size(), 13 Qt::IgnoreAspectRatio, 14 Qt::SmoothTransformation))); 15 this->setPalette(palette); 16 } 17 18 //重载resizeEvent 19 void Widget::resizeEvent(QResizeEvent *) 20 { 21 setBackgroundImage(m_backPixmap); 22 }
值得注意的是 , 要使窗口的背景图片显示出来的时候 , widget 的 autoFillBackground 属性一定要为 true,
(调用 setAutoFillBackground(true) 就ok 了)
最后
以上就是紧张手链为你收集整理的Qt5:随窗口大小变化背景图片自动缩放的实现【转】的全部内容,希望文章能够帮你解决Qt5:随窗口大小变化背景图片自动缩放的实现【转】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复