QSize类

QSize类使用整点精度定义二维对象的大小。更多...

头文件 #include <QSize>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

公共函数

QSize()
QSize(int width, int height)
QSizeboundedTo(const QSize &otherSize) const
QSizeexpandedTo(const QSize &otherSize) const
QSizegrownBy(QMargins margins) const
intheight() const
boolisEmpty() const
boolisNull() const
boolisValid() const
int &rheight()
int &rwidth()
voidscale(int width, int height, Qt::AspectRatioMode mode)
voidscale(const QSize &size, Qt::AspectRatioMode mode)
QSizescaled(int width, int height, Qt::AspectRatioMode mode) const
QSizescaled(const QSize &s, Qt::AspectRatioMode mode) const
voidsetHeight(int height)
voidsetWidth(int width)
QSizeshrunkBy(QMargins margins) const
CGSizetoCGSize() const
(since 6.4) QSizeFtoSizeF() const
void转置()
QSizetransposed() const
intwidth() const
QSize &operator*=(qreal factor)
QSize &operator+=(const QSize &size)
QSize &operator-=(const QSize &size)
QSize &operator/=(qreal divisor)
booloperator!=(const QSize &s1, const QSize &s2)
QSizeoperator*(const QSize &size, qreal factor)
QSizeoperator*(qreal factor, const QSize &size)
QSizeoperator+(const QSize &s1, const QSize &s2)
QSizeoperator-(const QSize &s1, const QSize &s2)
QSizeoperator/(const QSize &size, qreal divisor)
QDataStream &operator<<(QDataStream &stream, const QSize &size)
booloperator==(const QSize &s1, const QSize &s2)
QDataStream &operator>>(QDataStream &stream, QSize &size)

详细描述

尺寸由宽度width()和高度height()指定。它可以在构造函数中设置,并可以使用setWidth()、setHeightscale()函数进行更改,或使用算术运算符。尺寸也可以直接通过使用rwidth()和rheight()函数获取宽度和高度的引用来操作。最后,可以使用transpose()函数交换宽度和高度。

isValid()函数确定尺寸是否有效(有效的尺寸宽度和高度均大于或等于零)。isEmpty()函数如果宽度或高度小于或等于零返回true,而isNull()函数只有在宽度和高度都为零时才返回true

使用expandedTo()函数检索一个包含this尺寸和给定尺寸的最大高度和宽度的尺寸。类似地,boundedTo()函数返回一个包含this尺寸和给定尺寸的最小高度和宽度的尺寸。

QSize对象可以流式传输,也可以进行比较。

另请参阅QSizeFQPointQRect

成员函数文档

[constexpr noexcept] QSize QSize::grownBy(QMargins margins) const

返回通过增长 margins得到的尺寸。

另请参阅shrunkBy()。

[constexpr noexcept] QSize QSize::shrunkBy(QMargins margins) const

返回通过缩小 margins得到的尺寸。

另请参阅grownBy()。

[constexpr noexcept] QSize::QSize()

构造一个无效宽度和高度(即isValid()返回false)的尺寸。

另请参阅isValid()。

[constexpr noexcept] QSize::QSize(int width, int height)

使用给定的 width height构造尺寸。

另请参阅setWidth()和setHeight()。

[constexpr noexcept] QSize QSize::boundedTo(const QSize &otherSize) const

返回一个包含此尺寸和给定尺寸的最小宽度和高度的尺寸。

另请参阅 expandedTo() 和 scale()。

[constexpr noexcept] QSize QSize::expandedTo(const QSize &otherSize) const

返回一个包含此大小和给定 otherSize 的最大宽度和高度的尺寸。

另请参阅 boundedTo() 和 scale()。

[constexpr noexcept] int QSize::height() const

返回高度。

另请参阅 width() 和 setHeight()。

[constexpr noexcept] bool QSize::isEmpty() const

如果宽度或高度任一小于或等于0,则返回 true;否则返回 false

另请参阅 isNull() 和 isValid()。

[constexpr noexcept] bool QSize::isNull() const

如果宽度和高度都为0,则返回 true;否则返回 false。

另请参阅 isValid() 和 isEmpty()。

[constexpr noexcept] bool QSize::isValid() const

如果宽度和高度等于或大于0,则返回 true;否则返回 false

另请参阅 isNull() 和 isEmpty()。

[constexpr noexcept] int &QSize::rheight()

返回对高度的引用。

使用引用可以直接操作高度。例如

QSize size(100, 10);
size.rheight() += 5;

// size becomes (100,15)

另请参阅 rwidth() 和 setHeight()。

[constexpr noexcept] int &QSize::rwidth()

返回对宽度的引用。

使用引用可以直接操作宽度。例如

QSize size(100, 10);
size.rwidth() += 20;

// size becomes (120,10)

另请参阅 rheight() 和 setWidth()。

[noexcept] void QSize::scale(int width, int height, Qt::AspectRatioMode mode)

将大小缩放为具有给定 widthheight 的矩形,根据指定的 mode 进行缩放

  • 如果 modeQt::IgnoreAspectRatio,则大小设置为 (width, height)。
  • 如果 modeQt::KeepAspectRatio,则当前大小缩放为在 (width, height) 内尽可能大的矩形,并保持纵横比。
  • 如果 modeQt::KeepAspectRatioByExpanding,则当前大小缩放为在 (width, height) 外尽可能小的矩形,并保持纵横比。

示例

QSize t1(10, 12);
t1.scale(60, 60, Qt::IgnoreAspectRatio);
// t1 is (60, 60)

QSize t2(10, 12);
t2.scale(60, 60, Qt::KeepAspectRatio);
// t2 is (50, 60)

QSize t3(10, 12);
t3.scale(60, 60, Qt::KeepAspectRatioByExpanding);
// t3 is (60, 72)

另请参阅 setWidth(),setHeight(),和 scaled()。

[noexcept] void QSize::scale(const QSize &size, Qt::AspectRatioMode mode)

这是一个重载函数。

将大小按指定的 模式 缩放到给定的大小 size 的矩形。

[noexcept] QSize QSize::scaled(int width, int height, Qt::AspectRatioMode mode) const

返回一个大小按指定的 宽度和高度模式 缩放的矩形。

另请参阅 scale()。

[noexcept] QSize QSize::scaled(const QSize &s, Qt::AspectRatioMode mode) const

这是一个重载函数。

按指定的 模式 返回一个大小为给定大小 s 的矩形。

[constexpr noexcept] void QSize::setHeight(int height)

将高度设置为给定的 高度

另请参阅 rheight(),height(),和 setWidth()。

[constexpr noexcept] void QSize::setWidth(int width)

将宽度设置为给定的 宽度

另请参阅 rwidth(),width(),和 setHeight()。

[noexcept] CGSize QSize::toCGSize() const

QSize 创建一个 CGSize。

另请参阅 QSizeF::fromCGSize()。

[constexpr noexcept, since 6.4] QSizeF QSize::toSizeF() const

以浮点准确度返回此大小。

此函数是在 Qt 6.4 中引入的。

另请参阅 QSizeF::toSize()。

[noexcept] void QSize::transpose()

交换宽度和高度值。

另请参阅 setWidth(),setHeight(),和 transposed()。

[constexpr noexcept] QSize QSize::transposed() const

返回一个宽度和高度互换的 QSize

另请参阅 transpose()。

[constexpr noexcept] int QSize::width() const

返回宽度。

另请参阅 height() 和 setWidth().

[constexpr noexcept] QSize &QSize::operator*=(qreal factor)

这是一个重载函数。

将宽度和高宽都乘以给定的factor,并返回尺寸的引用。

注意结果会被四舍五入到最接近的整数。

另请参阅 scale()。

[constexpr noexcept] QSize &QSize::operator+=(const QSize &size)

将给定的size添加到this尺寸,并返回此尺寸的引用。例如

QSize s( 3, 7);
QSize r(-1, 4);
s += r;

// s becomes (2,11)

[constexpr noexcept] QSize &QSize::operator-=(const QSize &size)

this尺寸中减去给定的size,并返回此尺寸的引用。例如

QSize s( 3, 7);
QSize r(-1, 4);
s -= r;

// s becomes (4,3)

QSize &QSize::operator/=(qreal divisor)

这是一个重载函数。

将宽度和高度都除以给定的divisor,并返回尺寸的引用。

注意结果会被四舍五入到最接近的整数。

另请参阅 QSize::scale().

相关非成员

[constexpr noexcept] bool operator!=(const QSize &s1, const QSize &s2)

如果s1s2不同,则返回true;否则返回false。

[constexpr noexcept] QSize operator*(const QSize &size, qreal factor)

将给定的size乘以给定的factor,并返回四舍五入到最接近的整数的结果。

另请参阅 QSize::scale().

[constexpr noexcept] QSize operator*(qreal factor, const QSize &size)

这是一个重载函数。

将给定的size乘以给定的factor,并返回四舍五入到最接近的整数的结果。

[constexpr noexcept] QSize operator+(const QSize &s1, const QSize &s2)

返回s1s2的和;每个组件分别相加。

[constexpr noexcept] QSize operator-(const QSize &s1, const QSize &s2)

返回从s1中减去s2的结果;每个组件分别相减。

QSize operator/(const QSize &size, qreal divisor)

这是一个重载函数。

将给定的size除以给定的除数,并返回四舍五入到最接近整数的计算结果。

另请参阅 QSize::scale().

QDataStream &operator<<(QDataStream &stream, const QSize &size)

将给定的size写入给定的,并返回对流的引用。

另请参阅 序列化 Qt 数据类型.

[ constexpr noexcept ] bool operator==(const QSize &s1, const QSize &s2)

如果s1s2相等,则返回true;否则返回false

QDataStream &operator>>(QDataStream &stream, QSize &size)

从给定的读取一个大小到给定的size,并返回对流的引用。

另请参阅 序列化 Qt 数据类型.

© 2024 Qt 公司 Ltd. 本文档中的贡献知识产权归其所有者所有。提供的文档受自由软件基金会发布的GNU自由文档许可版本1.3的条款所许可。Qt以及相应的商标是芬兰的Qt公司及其在全球的子公司和关联公司的商标。所有其他商标均为其所有者的财产。