Qt | 关于矩形大小的使用 QSize

843 阅读2分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

前言:

QSize类使用整数类型的值定义一个二维对象的尺寸,即宽和高。一般用来绘制矩形是定义一个矩形的大小,或者表示一个规则控件的大小,都可以用到QSize。

之前项目中的一个功能,拖动一个控件,如果控件在另一个控件区域内,则将拖动的控件插入到这个控件之前,这时就需要用到两个控件的矩形大小QSize,需要对两个QSize、QPoint进行比较,实现这个功能。

QSize的相关函数:

判断尺寸是否有效:

  • isEmpty(); //宽或高 <=0 则为true,否则为false。
  • isNumll(); //宽或高 == 0 则为true,否则为false。
  • isValid(); //宽或高 >= 0 则为true,否则为false。

isEmpty()函数是一个常用的函数,除了可以判断QString、容器是否为空,还可以判断QSize,当然QSize的isEmpty()的含义略有不同。

宽、高的设置和获取:

  • setWidth(); //设置宽度
  • setHeight(); //设置高度
  • width(); // 获得宽度
  • height(); // 获得高度

交换宽度和高度:

  • transpose(); //交换宽度和高度;有两个重载函数,一个改变QSize的值,一个不改变QSize的值,而是返回一个新的QSize。

缩放:

  • scale(); //有四个重载函数,参数不同。也区分是否改变QSize的值。

其他:

  • boundedTo(); //返回自身和参数比较后结合起来的最小尺寸。
  • expandedTo(); //返回自身和参数比较后结合起来的最大尺寸。

可以*或/一个整数,按比例进行扩大或缩放,即宽高同时乘以除以一个整数,结果为四舍五入后的整数,返回QSize的引用。

可以+或-一个QSize,将当前大小的宽、高与参数的宽、高进行加法减法运算,返回加法或减法运算后的值得引用。