zoukankan      html  css  js  c++  java
  • Qt5:随窗口大小变化背景图片自动缩放的实现

    在窗口程序中,当我们改变窗口大小的时候,背景图片通常会岁窗口大小变化而缩放

    然而,在我们写的窗口程序中,设置背景图片后,如果缩放大小,会看到背景图片并不会随之缩放,

    应为这需要特殊处理,一般常用的方法就是 改变设为背景图片的 pixmap 的大小,在发生resize事件的时候,

    将改变完大小的pixmap重新设置为有新size窗口的背景图片

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    主要的实现代码如下

     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 了)

  • 相关阅读:
    表连接 索引
    数据库类型
    Java重试机制
    Result Maps collection already contains value for xxxMapper.BaseResultMap错误解决办法
    Lombok插件
    REST以及RESTful
    Dubbo
    【日志】MySQL中有多少种日志
    【缓存池】转-Mysql参数innodb_buffer_pool_size
    【MRR】转-MySQL 的 MRR 优化
  • 原文地址:https://www.cnblogs.com/wowk/p/3203505.html
Copyright © 2011-2022 走看看