zoukankan      html  css  js  c++  java
  • QT学习之QImage::scaled

    QT中图片的比例变换,为了适应控件的大小,采用QImage、QPixmap等绘图设备类提供的scaled()函数,下面是Qt文档对于scaled()函数介绍:

    函数原型:

    QImage QImage::scaled ( int width, int height,  Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio,  Qt::TransformationMode transformMode = Qt::FastTransformation ) const  

    This is an overloaded function.

    Returns a copy of the image scaled to a rectangle with the given width and height according to the given AspectRatioMode and TransformMode.

    If either the width or the height is zero or negative, this function returns a null image.

    这是一个重载函数,按照指定的宽和高,根据纵横比(Aspect Ratio)模式和转换模式从原有图像返回一个经过比例转换的图像,如果宽高为0,返回一个空图像

    所以,获取控件的改变后的宽高,就能设定图像转换的宽高转换比例,用scaled()的返回重新进行绘图即可自适应窗口。

    其中:

    纵横比:一个物体的水平宽度除以垂直高度所得比例值,或一个物体的垂直高度除以水平宽度所得的比例值。纵横比,即一个图像的宽度除以它的高度所得的比例,通常表示为 "x:y" or "x×y",其中的冒号和叉号表示中文的“比”之意。目前,在电影工业中最常被使用的是 anamorphic 比例(即 2.39:1)[1]。传统的 4:3(1.33:1)仍然被使用于现今的许多电视画面上,而它成功的后继规格 16:9(1.78:1)则被用于高清晰度电视和欧洲的数位电视上。QImage中有三种选择,如图所示。

    转换模式:

    例如:

    
    
     QImage _image;
          _image.load(tab1_image);
          ui->tab->setAutoFillBackground(true);   // 这个属性一定要设置
          QPalette pal;
          pal.setBrush(QPalette::Background, QBrush(_image.scaled(ui->tab->size(), Qt::IgnoreAspectRatio)));
          ui->tab->setPalette(pal);
     
  • 相关阅读:
    3、Linux知识点/dos基础命令
    2、进制转换
    1、软件测试基础####################################################
    50.React跳转路由传参3种方法和区别
    49.react中使用less
    48.vue-awesome-swipe使用
    47、安装node-sass后运行报错
    46、VUE + JS 面试宝典
    45、导航钩子函数中使用next()和next('指定路径')的区别:
    44、css实现水波纹效果
  • 原文地址:https://www.cnblogs.com/qixianyu/p/6891054.html
Copyright © 2011-2022 走看看