QSize所有方法使用 (QT5.12)

//for starf study

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include<QDebug>

#include<QSize>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //QSize类使用整数类型值定义一个二维对象的尺寸,即宽和高
    QSize sz = QSize(150, 70);
    qDebug()<<sz;   //得到:QSize(150, 70)
    qDebug()<<sz.isEmpty();  //w或者h<= 0 返回true
    qDebug()<<sz.isNull();  //W 且 h == 0 返回true
    qDebug()<<sz.isValid(); //w 且 h >= 0 返回true
    qDebug()<<sz.width(); //获取当前宽度
    qDebug()<<sz.height(); //获取当前宽度
    sz.setWidth(sz.width() + 20); //重设宽度函数
    sz.setHeight(sz.height() + 30); //重设高度
    int &wx = sz.rwidth();  // 获取宽度引用
    int &hx = sz.rheight(); // 获取高度引用
    qDebug()<<wx<<hx;
    sz.transpose(); //交换QSize的 w和 h,而且直接改变自身
    QSize newSz = sz.transposed(); //交换QSize的w和h,但是自身不改变,而是返回改变后的QSize
    qDebug()<<newSz<<sz;

       //scale的3个参数为:Qt::AspectRatioMode  此枚举类型定义缩放矩形时纵横比的变化
       //Qt::IgnoreAspectRatio 大小可自由缩放。不保留纵横比
       //Qt::KeepAspectRatio    在给定的矩形内,大小被缩放为一个尽可能大的矩形,并保留纵横比。
      //Qt::KeepAspectRatioByExpanding  大小被缩放为给定矩形外尽可能小的矩形,保留纵横比。
    sz.scale(20,30,Qt::IgnoreAspectRatio);  //重设尺寸为自由尺寸,不保留纵横比
    QSize scale = sz.scaled(50,60,Qt::KeepAspectRatio);  //重设尺寸但是保留纵横比
    qDebug()<<sz << scale;   //scale 和 scaled 有一个重载,即把x,y两个参数替换成另一个QSize对象
    sz.setWidth(70);
    //此时:sz = QSize(70, 30)
    //          scale = QSize(40, 60)
    QSize bound = sz.boundedTo(scale); //将自身和参数做比较 选取较小的w和较小的h组合成新的QSize返回
    QSize expanded = sz.expandedTo(scale);//将自身和参数做比较 选取较大的w和较小的h组合成新的QSize返回
    qDebug()<<bound<<expanded;
     //bound = QSize(40, 30)
     //expanded = QSize(70, 60)

}

MainWindow::~MainWindow()
{
    delete ui;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值