QSizeF 类

QSizeF 类用于使用浮点精度定义二维对象的大小。更多...

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

公共函数

QSizeF()
QSizeF(const QSize &size)
QSizeF(qreal width, qreal height)
QSizeFboundedTo(const QSizeF &otherSize) const
QSizeFexpandedTo(const QSizeF &otherSize) const
QSizeFgrownBy(QMarginsF margins) const
qrealheight() const
boolisEmpty() const
boolisNull() const
boolisValid() const
qreal &rheight()
qreal &rwidth()
voidscale(qreal width, qreal height, Qt::AspectRatioMode mode)
voidscale(const QSizeF &size, Qt::AspectRatioMode mode)
QSizeFscaled(qreal width, qreal height, Qt::AspectRatioMode mode) const
QSizeFscaled(const QSizeF &s, Qt::AspectRatioMode mode) const
voidsetHeight(qreal height)
voidsetWidth(qreal width)
QSizeFshrunkBy(QMarginsF margins) const
CGSizetoCGSize() const
QSizetoSize() const
void转置()
QSizeFtransposed() const
qrealwidth() const
QSizeF &operator*=(qreal factor)
QSizeF &operator+=(const QSizeF &size)
QSizeF &operator-=(const QSizeF &size)
QSizeF &operator/=(qreal divisor)

静态公共成员

QSizeFfromCGSize(CGSize size)
booloperator!=(const QSizeF &s1, const QSizeF &s2)
QSizeFoperator*(const QSizeF &size, qreal factor)
QSizeFoperator*(qreal factor, const QSizeF &size)
QSizeFoperator+(const QSizeF &s1, const QSizeF &s2)
QSizeFoperator-(const QSizeF &s1, const QSizeF &s2)
QSizeFoperator/(const QSizeF &size, qreal divisor)
QDataStream &operator<<(QDataStream &stream, const QSizeF &size)
booloperator==(const QSizeF &s1, const QSizeF &)
QDataStream &operator>>(QDataStream &stream, QSizeF &size)

详细描述

大小由 width() 和 height() 指定。它可以由构造函数设置,并通过使用 setWidth(),setHeight() 或 scale() 函数来更改,或者使用算术运算符。还可以通过使用 rwidth() 和 rheight() 函数直接操作大小。最后,可以使用 transpose() 函数交换宽度和高度。

isValid() 函数确定大小是否有效。有效的大小宽度和高都大于或等于零。当宽度或高度中任何一个是小于(或等于)零时,isEmpty() 函数返回 true,而 isNull() 函数只有在宽度和高度都为零时才返回 true

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

QSizeF 类还提供了 toSize() 函数,该函数返回此大小的一个 QSize 复制品,由四舍五入宽度和高度到最近的整数构建。

QSizeF 对象也可以进行流操作以及比较。

另请参阅QSizeQPointFQRectF

成员函数文档

[constexpr noexcept] QSizeF QSizeF::grownBy(QMarginsF margins) const

返回通过 margins 增长此大小的结果。

另请参阅shrunkBy

[constexpr noexcept] QSizeF QSizeF::shrunkBy(QMarginsF margins) const

返回通过 margins 缩小此大小的结果。

另请参阅grownBy

[constexpr noexcept] QSizeF::QSizeF()

构造一个无效的大小。

另请参阅isValid

[constexpr noexcept] QSizeF::QSizeF(const QSize &size)

使用给定 size 构造具有浮点精度的大小。

另请参阅toSize() 和 QSize::toSizeF

[constexpr noexcept] QSizeF::QSizeF(qreal width, qreal height)

使用给定的有限宽度高度创建一个大小。

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

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

另请参阅expandedTo() 和 scale

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

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

另请参阅boundedTo() 和 scale

[static noexcept] QSizeF QSizeF::fromCGSize(CGSize size)

size创建一个QRectF

另请参阅toCGSize

[constexpr noexcept] qreal QSizeF::height() const

返回高度。

另请参阅width() 和 setHeight

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

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

另请参阅isNull() 和 isValid

[noexcept] bool QSizeF::isNull() const

如果宽度和高度都为0.0(忽略符号),则返回true;否则返回false

另请参阅isValid() 和 isEmpty

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

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

另请参阅isNull() 和 isEmpty

[constexpr noexcept] qreal &QSizeF::rheight()

返回对高度的引用。

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

QSizeF size(100, 10.2);
size.rheight() += 5.5;

// size becomes (100,15.7)

另请参阅rwidth() 和 setHeight

[constexpr noexcept] qreal &QSizeF::rwidth()

返回对宽度的引用。

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

QSizeF size(100.3, 10);
size.rwidth() += 20.5;

 // size becomes (120.8,10)

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

[noexcept] void QSizeF::scale(qreal width, qreal height, Qt::AspectRatioMode mode)

根据指定的 mode,将尺寸缩放为具有给定 widthheight 的矩形。

  • 如果 modeQt::IgnoreAspectRatio,则将尺寸设置为 (width, height)。
  • 如果 modeQt::KeepAspectRatio,则当前尺寸缩放为在 (width, height) 内可以容纳的最大矩形,保持宽高比。
  • 如果 modeQt::KeepAspectRatioByExpanding,则当前尺寸缩放为在 (width, height) 外可以容纳的最小矩形,保持宽高比。

示例:

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

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

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

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

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

这是一个重载函数。

根据指定的 mode,将尺寸缩放为具有给定 size 的矩形。

[noexcept] QSizeF QSizeF::scaled(qreal width, qreal height, Qt::AspectRatioMode mode) const

返回一个尺寸缩放为具有给定 widthheight 的矩形,根据指定的 mode

另请参阅 scale()。

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

这是一个重载函数。

返回一个尺寸缩放为具有给定大小 s 的矩形,根据指定的 mode

[constexpr noexcept] void QSizeF::setHeight(qreal height)

将高度设置为给定的有限 height

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

[constexpr noexcept] void QSizeF::setWidth(qreal width)

将宽度设置为给定的有限 width

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

[noexcept] CGSize QSizeF::toCGSize() const

QSizeF 创建一个CGSize对象。

另请参阅fromCGSize()。

[constexpr noexcept] QSize QSizeF::toSize() const

返回此大小的整数副本。

请注意,返回的大小中的坐标将被四舍五入到最接近的整数。

另请参阅QSizeF() 和 QSize::toSizeF()。

[noexcept] void QSizeF::transpose()

交换宽度和高度值。

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

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

返回宽度和高度值交换后的尺寸。

另请参阅transpose()。

[constexpr noexcept] qreal QSizeF::width() const

返回宽度。

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

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

这是一个重载函数。

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

另请参阅 scale()。

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

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

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

// s becomes (2,11)

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

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

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

// s becomes (4,3)

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

这是一个重载函数。

将宽度和高度除以给定的 divisor,并返回尺寸的引用。该 divisor 必须不能是零或 NaN。

另请参阅 scale()。

相关非成员函数

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

如果 s1s2 差异足够大,则返回 true;否则返回 false

警告:此函数不检查严格不等式;而是使用模糊比较来比较尺寸的范围。

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

这是一个重载函数。

将给定的size乘以给定的有限factor并返回结果。

另请参阅QSizeF::scale

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

这是一个重载函数。

将给定的size乘以给定的有限factor并返回结果。

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

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

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

s1中减去s2,每个分量分别相减。

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

这是一个重载函数。

将给定的size除以给定的divisor并返回结果。除数不能为零或NaN。

另请参阅QSizeF::scale

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

将给定的size写入给定的stream并返回流的一个引用。

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

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

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

警告:此函数不检查严格的相等性;相反,它使用模糊比较来比较尺寸的范围。

另请参阅qFuzzyCompare

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

从给定的stream读取一个大小并写入给定的size中,并返回流的一个引用。

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

© 2024 Qt公司有限 公司。本文件中的文档贡献归其各自的版权拥有者所有。本文件提供的文档根据自由软件基金会发布的GNU自由文档许可协议版本1.3的条款获得许可。GNU自由文档许可协议版本1.3已发布。Qt及其相关标志是芬兰和/或其他国家/地区的Qt公司注册商标。所有其他商标均为其各自的拥有者所有。