QSize Class
QSize 类使用整数点精度定义二维对象的大小。更多
头文件: | #include <QSize> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 所有成员(包括继承成员)的列表
- QSize 属于绘画类。
公共函数
QSize() | |
QSize(int width, int height) | |
QSize | boundedTo(const QSize &otherSize) const |
QSize | expandedTo(const QSize &otherSize) const |
QSize | grownBy(QMargins margins) const |
int | height() const |
bool | isEmpty() const |
bool | isNull() const |
bool | isValid() const |
int & | rheight() |
int & | rwidth() |
void | scale(int width, int height, Qt::AspectRatioMode mode) |
void | scale(const QSize &size, Qt::AspectRatioMode mode) |
QSize | scaled(int width, int height, Qt::AspectRatioMode mode) const |
QSize | scaled(const QSize &s, Qt::AspectRatioMode mode) const |
void | setHeight(int height) |
void | setWidth(int width) |
QSize | shrunkBy(QMargins margins) const |
CGSize | toCGSize() const |
(since 6.4) QSizeF | toSizeF() const |
void | transpose() |
QSize | transposed() const |
int | width() const |
QSize & | operator*=(qreal factor) |
QSize & | operator+=(const QSize &size) |
QSize & | operator-=(const QSize &size) |
QSize & | operator/=(qreal divisor) |
相关非成员
bool | operator!=(const QSize &lhs, const QSize &rhs) |
QSize | operator*(const QSize &size, qreal factor) |
QSize | operator*(qreal factor, const QSize &size) |
QSize | operator+(const QSize &s1, const QSize &s2) |
QSize | operator-(const QSize &s1, const QSize &s2) |
QSize | operator/(const QSize &size, qreal divisor) |
QDataStream & | operator<<(QDataStream &stream, const QSize &size) |
bool | operator==(const QSize &lhs, const QSize &rhs) |
QDataStream & | operator>>(QDataStream &stream, QSize &size) |
详细说明
尺寸由width() 和height() 指定。它可以在构造函数中设置,也可以使用setWidth(),setHeight() 或scale() 函数或算术运算符更改。使用rwidth() 和rheight() 函数检索宽度和高度的引用,也可以直接操作大小。最后,可以使用transpose() 函数交换宽度和高度。
isValid() 函数确定尺寸是否有效(有效尺寸的宽度和高度均大于或等于零)。如果宽度和高度均小于或等于零,则isEmpty() 函数返回true
,而isNull() 函数仅在宽度和高度均为零时返回true
。
使用expandedTo() 函数可以获取一个尺寸,该尺寸包含此尺寸和给定尺寸的最大高度和宽度。同样,boundedTo() 函数也会返回一个包含此尺寸和给定尺寸的最小高度和宽度的尺寸。
QSize 对象可以流式传输,也可以比较。
成员函数文档
[constexpr noexcept]
QSize QSize::grownBy(QMargins margins) const
返回此大小增长margins 后的大小。
另请参阅 shrunkBy() 。
[constexpr noexcept]
QSize QSize::shrunkBy(QMargins margins) const
返回将此大小缩小margins 后的大小。
另请参阅 grownBy() 。
[constexpr noexcept]
QSize::QSize()
构造一个宽度和高度无效的 size(即isValid() 返回false
)。
另请参阅 isValid() 。
[constexpr noexcept]
QSize::QSize(int width, int height)
用给定的width 和height 构建大小。
另请参阅 setWidth() 和setHeight() 。
[constexpr noexcept]
QSize QSize::boundedTo(const QSize &otherSize) const
返回一个尺寸,其中包含此尺寸和给定otherSize 的最小宽度和高度。
另请参阅 expandedTo() 和scale()。
[constexpr noexcept]
QSize QSize::expandedTo(const QSize &otherSize) const
返回一个尺寸,其中包含此尺寸和给定otherSize 的最大宽度和高度。
[constexpr noexcept]
int QSize::height() const
返回高度。
[constexpr noexcept]
bool QSize::isEmpty() const
如果宽度和高度小于或等于 0,则返回true
;否则返回false
。
[constexpr noexcept]
bool QSize::isNull() const
如果宽度和高度均为 0,则返回true
;否则返回 false。
[constexpr noexcept]
bool QSize::isValid() const
如果宽度和高度都等于或大于 0,则返回true
;否则返回false
。
[constexpr noexcept]
int &QSize::rheight()
返回高度的引用。
使用引用可以直接操作高度。例如
QSize size(100, 10); size.rheight() += 5; // size becomes (100,15)
[constexpr noexcept]
int &QSize::rwidth()
返回宽度的引用。
使用引用可以直接操作宽度。例如
QSize size(100, 10); size.rwidth() += 20; // size becomes (120,10)
[noexcept]
void QSize::scale(int width, int height, Qt::AspectRatioMode mode)
根据给定的width 和height ,按照指定的mode ,将大小缩放为一个矩形:
- 如果mode 是Qt::IgnoreAspectRatio ,则大小设置为 (width,height)。
- 如果mode 是Qt::KeepAspectRatio ,当前大小将按比例缩放到 (width,height) 内尽可能大的矩形中,并保留长宽比。
- 如果mode 是Qt::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)
这是一个重载函数。
根据指定的mode ,以给定的size 为矩形缩放尺寸。
[noexcept]
QSize QSize::scaled(int width, int height, Qt::AspectRatioMode mode) const
根据给定的width 和height ,按照指定的mode 返回按比例缩放的矩形尺寸。
另请参阅 scale() 。
[noexcept]
QSize QSize::scaled(const QSize &s, Qt::AspectRatioMode mode) const
这是一个重载函数。
根据指定的mode ,返回按比例缩放为矩形的尺寸s 。
[constexpr noexcept]
void QSize::setHeight(int height)
将高度设置为给定的height 。
另请参阅 rheight()、height() 和setWidth()。
[constexpr noexcept]
void QSize::setWidth(int width)
将宽度设置为给定的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
返回宽度。
[constexpr noexcept]
QSize &QSize::operator*=(qreal factor)
这是一个重载函数。
将宽度和高度与给定的factor 相乘,并返回对大小的引用。
请注意,结果将四舍五入为最接近的整数。
另请参见 scale()。
[constexpr noexcept]
QSize &QSize::operator+=(const QSize &size)
将给定的size 添加到此大小,并返回此大小的引用。例如
[constexpr noexcept]
QSize &QSize::operator-=(const QSize &size)
从此大小减去给定的size ,并返回此大小的引用。例如
QSize &QSize::operator/=(qreal divisor)
这是一个重载函数。
用给定的divisor 除以宽度和高度,并返回一个尺寸引用。
请注意,结果将四舍五入为最接近的整数。
另请参阅 QSize::scale()。
相关非成员
[constexpr noexcept]
bool operator!=(const QSize &lhs, const QSize &rhs)
如果lhs 和rhs 不同,则返回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)
返回s1 和s2 的总和;每个部分分别相加。
[constexpr noexcept]
QSize operator-(const QSize &s1, const QSize &s2)
Returnss2 subtracted froms1; each component is subtracted separately.
QSize operator/(const QSize &size, qreal divisor)
这是一个重载函数。
将给定的size 除以给定的divisor ,并返回四舍五入为最接近整数的结果。
另请参见 QSize::scale()。
QDataStream &operator<<(QDataStream &stream, const QSize &size)
将给定的size 写入给定的stream ,并返回对该数据流的引用。
另请参阅 序列化 Qt 数据类型。
[constexpr noexcept]
bool operator==(const QSize &lhs, const QSize &rhs)
如果lhs 和rhs 相等,则返回true
;否则返回false
。
QDataStream &operator>>(QDataStream &stream, QSize &size)
从给定的stream 中读取大小到给定的size 中,并返回对该数据流的引用。
另请参阅 序列化 Qt 数据类型。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.