Sur cette page

QSizeF Class

La classe QSizeF définit la taille d'un objet bidimensionnel en utilisant la précision de la virgule flottante. Plus d'informations...

En-tête : #include <QSizeF>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Fonctions publiques

QSizeF()
QSizeF(const QSize &size)
QSizeF(qreal width, qreal height)
QSizeF boundedTo(const QSizeF &otherSize) const
QSizeF expandedTo(const QSizeF &otherSize) const
QSizeF grownBy(QMarginsF margins) const
qreal height() const
bool isEmpty() const
bool isNull() const
bool isValid() const
qreal &rheight()
qreal &rwidth()
void scale(qreal width, qreal height, Qt::AspectRatioMode mode)
void scale(const QSizeF &size, Qt::AspectRatioMode mode)
QSizeF scaled(qreal width, qreal height, Qt::AspectRatioMode mode) const
QSizeF scaled(const QSizeF &s, Qt::AspectRatioMode mode) const
void setHeight(qreal height)
void setWidth(qreal width)
QSizeF shrunkBy(QMarginsF margins) const
CGSize toCGSize() const
QSize toSize() const
void transpose()
QSizeF transposed() const
qreal width() const
QSizeF &operator*=(qreal factor)
QSizeF &operator+=(const QSizeF &size)
QSizeF &operator-=(const QSizeF &size)
QSizeF &operator/=(qreal divisor)

Membres publics statiques

QSizeF fromCGSize(CGSize size)
(since 6.8) bool qFuzzyCompare(const QSizeF &lhs, const QSizeF &rhs)
(since 6.8) bool qFuzzyIsNull(const QSizeF &size)
bool operator!=(const QSizeF &lhs, const QSizeF &rhs)
QSizeF operator*(const QSizeF &size, qreal factor)
QSizeF operator*(qreal factor, const QSizeF &size)
QSizeF operator+(const QSizeF &s1, const QSizeF &s2)
QSizeF operator-(const QSizeF &s1, const QSizeF &s2)
QSizeF operator/(const QSizeF &size, qreal divisor)
QDataStream &operator<<(QDataStream &stream, const QSizeF &size)
bool operator==(const QSizeF &lhs, const QSizeF &rhs)
QDataStream &operator>>(QDataStream &stream, QSizeF &size)

Description détaillée

Une taille est spécifiée par un width() et un height(). Elle peut être définie dans le constructeur et modifiée à l'aide des fonctions setWidth(), setHeight() ou scale(), ou à l'aide d'opérateurs arithmétiques. Une taille peut également être manipulée directement en récupérant des références à la largeur et à la hauteur à l'aide des fonctions rwidth() et rheight(). Enfin, la largeur et la hauteur peuvent être échangées à l'aide de la fonction transpose().

La fonction isValid() détermine si une taille est valide. Une taille valide a une largeur et une hauteur supérieures ou égales à zéro. La fonction isEmpty() renvoie true si la largeur et la hauteur sont inférieures (ou égales) à zéro, tandis que la fonction isNull() renvoie true uniquement si la largeur et la hauteur sont toutes deux égales à zéro.

La fonction expandedTo() permet d'obtenir une taille qui contient la hauteur et la largeur maximales de cette taille et d'une taille donnée. De même, la fonction boundedTo() renvoie une taille qui contient la hauteur et la largeur minimales de cette taille et d'une taille donnée.

La classe QSizeF fournit également la fonction toSize() qui renvoie une copie QSize de cette taille, construite en arrondissant la largeur et la hauteur aux entiers les plus proches.

Les objets QSizeF peuvent être transmis en continu et comparés.

Voir également QSize, QPointF, et QRectF.

Documentation des fonctions membres

[constexpr noexcept] QSizeF::QSizeF()

Construit une taille non valide.

Voir aussi isValid().

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

Construit une taille avec une précision en virgule flottante à partir de size.

Voir aussi toSize() et QSize::toSizeF().

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

Construit une taille avec la valeur finie donnée width et height.

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

Renvoie une taille contenant la largeur et la hauteur minimales de cette taille et de l'adresse otherSize.

Voir aussi expandedTo() et scale().

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

Renvoie une taille contenant la largeur et la hauteur maximales de cette taille et de l'adresse otherSize.

Voir aussi boundedTo() et scale().

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

Crée un QSizeF à partir de size.

Voir aussi toCGSize().

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

Renvoie la taille qui résulte de l'augmentation de cette taille par margins.

Voir aussi shrunkBy().

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

Renvoie la hauteur.

Voir aussi width() et setHeight().

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

Renvoie true si la largeur et la hauteur sont inférieures ou égales à 0 ; sinon, renvoie false.

Voir aussi isNull() et isValid().

[noexcept] bool QSizeF::isNull() const

Renvoie true si la largeur et la hauteur sont toutes deux égales à 0,0 (sans tenir compte du signe) ; sinon, renvoie false.

Voir aussi isValid() et isEmpty().

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

Renvoie true si la largeur et la hauteur sont égales ou supérieures à 0 ; sinon, renvoie false.

Voir aussi isNull() et isEmpty().

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

Renvoie une référence à la hauteur.

L'utilisation d'une référence permet de manipuler directement la hauteur. A titre d'exemple :

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

// size becomes (100,15.7)

Voir aussi rwidth() et setHeight().

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

Renvoie une référence à la largeur.

L'utilisation d'une référence permet de manipuler directement la largeur. Par exemple, l'utilisation d'une référence permet de manipuler directement la largeur :

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

// size becomes (120.8,10)

Voir aussi rheight() et setWidth().

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

Redimensionne la taille d'un rectangle avec les adresses width et height, en fonction de l'adresse mode.

  • Si mode est Qt::IgnoreAspectRatio, la taille est fixée à (width, height).
  • Si mode est Qt::KeepAspectRatio, la taille actuelle est mise à l'échelle pour obtenir un rectangle aussi grand que possible à l'intérieur de (width, height), en préservant le rapport d'aspect.
  • Si mode est Qt::KeepAspectRatioByExpanding, la taille actuelle est réduite à un rectangle aussi petit que possible à l'extérieur de (width, height), en préservant le rapport hauteur/largeur.

Exemple :

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)

Voir également setWidth(), setHeight() et scaled().

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

Met à l'échelle la taille d'un rectangle avec l'adresse size, en fonction de l'adresse mode spécifiée.

Il s'agit d'une fonction surchargée.

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

Renvoie une taille mise à l'échelle d'un rectangle avec les valeurs width et height, en fonction de la valeur spécifiée mode.

Voir aussi scale().

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

Renvoie une taille mise à l'échelle d'un rectangle de la taille donnée s, en fonction de la taille spécifiée mode.

Il s'agit d'une fonction surchargée.

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

Fixe la hauteur à la valeur finie donnée height.

Voir aussi height(), rheight(), et setWidth().

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

Fixe la largeur à la valeur finie donnée width.

Voir aussi width(), rwidth(), et setHeight().

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

Renvoie la taille qui résulte de la réduction de cette taille par margins.

Voir aussi grownBy().

[noexcept] CGSize QSizeF::toCGSize() const

Crée un CGSize à partir d'un QSizeF.

Voir aussi fromCGSize().

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

Renvoie une copie de cette taille basée sur un nombre entier.

Notez que les coordonnées de la taille retournée seront arrondies à l'entier le plus proche.

Voir aussi QSizeF() et QSize::toSizeF().

[noexcept] void QSizeF::transpose()

Intervertit les valeurs de largeur et de hauteur.

Voir aussi setWidth(), setHeight() et transposed().

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

Renvoie la taille avec les valeurs de largeur et de hauteur interverties.

Voir également transpose().

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

Renvoie la largeur.

Voir aussi height() et setWidth().

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

Multiplie la largeur et la hauteur par la valeur finie donnée factor et renvoie une référence à la taille.

Voir aussi scale().

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

Ajoute la valeur size à cette taille et renvoie une référence à cette taille. Par exemple :

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

// s becomes (2,11)

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

Soustrait la valeur size de cette taille et renvoie une référence à cette taille. Par exemple :

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

// s becomes (4,3)

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

Divise la largeur et la hauteur par la valeur divisor et renvoie une référence à la taille. L'adresse divisor ne doit pas être zéro ou NaN.

Voir également scale().

Non-membres apparentés

[constexpr noexcept, since 6.8] bool qFuzzyCompare(const QSizeF &lhs, const QSizeF &rhs)

Renvoie true si la taille lhs est approximativement égale à la taille rhs; sinon, renvoie false.

Les tailles sont considérées comme approximativement égales si leur largeur et leur hauteur sont approximativement égales.

Cette fonction a été introduite dans Qt 6.8.

[constexpr noexcept, since 6.8] bool qFuzzyIsNull(const QSizeF &size)

Renvoie true si la largeur et la hauteur de la taille size sont approximativement égales à zéro.

Cette fonction a été introduite dans Qt 6.8.

[constexpr noexcept] bool operator!=(const QSizeF &lhs, const QSizeF &rhs)

Renvoie true si lhs et rhs sont suffisamment différents ; sinon, renvoie false.

Attention : Cette fonction ne vérifie pas l'inégalité stricte ; à la place, elle utilise une comparaison floue pour comparer les étendues des tailles.

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

Multiplie l'adresse size donnée par l'adresse finie factor donnée et renvoie le résultat.

Il s'agit d'une fonction surchargée.

Voir aussi QSizeF::scale().

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

Multiplie l'adresse size donnée par l'adresse finie factor donnée et renvoie le résultat.

Il s'agit d'une fonction surchargée.

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

Renvoie la somme de s1 et s2; chaque composant est ajouté séparément.

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

Renvoie s2 soustrait de s1; chaque composant est soustrait séparément.

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

Divise l'adresse size donnée par l'adresse divisor donnée et renvoie le résultat. L'adresse divisor ne doit pas être zéro ou NaN.

Voir aussi QSizeF::scale().

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

Écrit la donnée size dans la donnée stream et renvoie une référence au flux.

Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).

[constexpr noexcept] bool operator==(const QSizeF &lhs, const QSizeF &rhs)

Renvoie true si lhs et rhs sont approximativement égaux ; sinon, renvoie false.

Attention : Cette fonction ne vérifie pas l'égalité stricte ; elle utilise plutôt une comparaison floue pour comparer l'étendue des tailles.

Voir également qFuzzyCompare.

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

Lit une taille à partir de stream dans size et renvoie une référence au flux.

Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).

© 2026 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.