pyqt4文档阅读(7):QSize

本系列文章长期更新修改.


QSize,是Qt的一个常用数据结构,它是整数宽度高度的封装,本质上就是两个int的结构体.


属性:

Methods

  • __init__ (self)
  • __init__ (self, int w, int h)
  • __init__ (self, QSize other)
  • QSize boundedTo (self, QSize otherSize)
  • QSize expandedTo (self, QSize otherSize)
  • int height (self)
  • bool isEmpty (self)
  • bool isNull (self)
  • bool isValid (self)
  • scale (self, QSize s, Qt.AspectRatioMode mode)
  • scale (self, int w, int h, Qt.AspectRatioMode mode)
  • setHeight (self, int h)
  • setWidth (self, int w)
  • transpose (self)
  • int width (self)

Special Methods

  • QSize __add__ (self, QSize s2)
  • QSize __div__ (self, float c)
  • bool __eq__ (self, QSize s2)
  • QSize __iadd__ (self, QSize s)
  • QSize __idiv__ (self, float c)
  • QSize __imul__ (self, float c)
  • QSize __isub__ (self, QSize s)
  • QSize __mul__ (self, QSize s)
  • QSize __mul__ (self, float c)
  • bool __ne__ (self, QSize s2)
  • int __nonzero__ (self)
  • object __repr__ (self)
  • QSize __sub__ (self, QSize s2)


详细分析:


1.主要属性

QSize的主要属性就是宽度高度,所有方法都围绕它们进行计算.

  • __init__ (self)
  • __init__ (self, int w, int h)
  • __init__ (self, QSize other)
  • int height (self)
  • int width (self)
  • setHeight (self, int h)
  • setWidth (self, int w)

初始化的时候如果没有给出参数,宽度和高度为-1.

2.函数解释

函数 解释
transpose (self) 交换宽度和高度的值
bool isEmpty (self) 宽度高度都小于等于0时,返回true
bool isNull (self) 宽度高度都等于0时,返回true
bool isValid (self) 宽度高度都大于等于0时,返回true
QSize boundedTo (self, QSize otherSize) 两个QSize的宽度和高度各自取min
QSize expandedTo (self, QSize otherSize) 两个QSize的宽度和高度各自取max

3.缩放宽度高度

  • scale (self, QSize s, Qt.AspectRatioMode mode)
  • scale (self, int w, int h, Qt.AspectRatioMode mode)
这个函数会根据参数的宽度高度去调整自己的宽度高度,调整的策略是根据mode参数.

Qt.AspectRatioMode的所有枚举量解释如下:

其中原图片的size是我们运算前的size

枚举量 Value 描述
Qt.IgnoreAspectRatio 0 size变成参数里的size
Qt.KeepAspectRatio 1 宽高比不变的情况下,size放大或缩小到宽度高度刚好小于等于参数的宽度高度
Qt.KeepAspectRatioByExpanding 2 宽高比不变的情况下,size放大或缩小到宽度高度刚好大于等于参数的宽度高度

文档里有一张图片能形象地解释这个运算的意义:

pyqt4文档阅读(7):QSize_第1张图片

其中原图片的size是我们运算前的size,虚线框是参数的size,新图片的size是运算后的size.


你可能感兴趣的:(qt)