Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# QSize Class Reference

The QSize class defines the size of a two-dimensional object. More...

    #include <QSize>

- List of all members, including inherited members

### Public Functions

- QSize ()
- QSize ( int w, int h )
- QSize boundedTo ( const QSize & otherSize ) const
- QSize expandedTo ( const QSize & otherSize ) const
- int height () const
- bool isEmpty () const
- bool isNull () const
- bool isValid () const
- QCOORD & rheight ()
- QCOORD & rwidth ()
- void scale ( int w, int h, Qt::AspectRatioMode mode )
- void scale ( const QSize & s, Qt::AspectRatioMode mode )
- void setHeight ( int h )
- void setWidth ( int w )
- void transpose ()
- int width () const
- QSize & operator*= ( int c )
- QSize & operator*= ( double c )
- QSize & operator+= ( const QSize & s )
- QSize & operator-= ( const QSize & s )
- QSize & operator/= ( int c )
- QSize & operator/= ( double c )

### Related Non-Members

- bool operator!= ( const QSize & s1, const QSize & s2 )
- const QSize operator* ( const QSize & s, int c )
- const QSize operator* ( int c, const QSize & s )
- const QSize operator* ( const QSize & s, double c )
- const QSize operator* ( double c, const QSize & s )
- const QSize operator+ ( const QSize & s1, const QSize & s2 )
- const QSize operator- ( const QSize & s1, const QSize & s2 )
- const QSize operator/ ( const QSize & s, int c )
- const QSize operator/ ( const QSize & s, double c )
- QDataStream & operator<< ( QDataStream & s, const QSize & sz )
- bool operator== ( const QSize & s1, const QSize & s2 )
- QDataStream & operator>> ( QDataStream & s, QSize & sz )

## Detailed Description

The QSize class defines the size of a two-dimensional object.

A size is specified by a width and a height.

The coordinate type is QCOORD (defined in `<qwindowdefs.h>` as `int`). The minimum value of QCOORD is QCOORD_MIN (-2147483648) and the maximum value is QCOORD_MAX (2147483647).

The size can be set in the constructor and changed with setWidth(), setHeight(), or scale(), or using operator+=(), operator-=(), operator*=() and operator/=(), etc. You can swap the width and height with transpose(). You can get a size which holds the maximum height and width of two sizes using expandedTo(), and the minimum height and width of two sizes using boundedTo().

See also QPoint and QRect.

## Member Function Documentation

### QSize::QSize ()

Constructs a size with invalid width and height.

See also isValid(), setWidth(), and setHeight().

### QSize::QSize ( int w, int h )

Constructs a size with width w and height h.

### QSize QSize::boundedTo ( const QSize & otherSize ) const

Returns a size with the minimum width and height of this size and otherSize.

See also expandedTo(), scale(), setWidth(), and setHeight().

### QSize QSize::expandedTo ( const QSize & otherSize ) const

Returns a size with the maximum width and height of this size and otherSize.

See also boundedTo(), scale(), setWidth(), and setHeight().

### int QSize::height () const

Returns the height.

See also width().

### bool QSize::isEmpty () const

Returns true if the width is less than or equal to 0, or the height is less than or equal to 0; otherwise returns false.

See also isNull(), isValid(), width(), and height().

### bool QSize::isNull () const

Returns true if the width is 0 and the height is 0; otherwise returns false.

See also isValid(), isEmpty(), width(), and height().

### bool QSize::isValid () const

Returns true if the width is equal to or greater than 0 and the height is equal to or greater than 0; otherwise returns false.

See also isNull(), isEmpty(), width(), and height().

### QCOORD & QSize::rheight ()

Returns a reference to the height.

Using a reference makes it possible to directly manipulate the height.

Example:

        QSize s(100, 10);
        s.rheight() += 5;                // s becomes (100,15)

See also rwidth() and setHeight().

### QCOORD & QSize::rwidth ()

Returns a reference to the width.

Using a reference makes it possible to directly manipulate the width.

Example:

        QSize s(100, 10);
        s.rwidth() += 20;                // s becomes (120,10)

See also rheight() and setWidth().

### void QSize::scale ( int w, int h, Qt::AspectRatioMode mode )

Scales the size to a rectangle of width w and height h according to the Qt::AspectRatioMode mode.

- If mode is `Qt::IgnoreAspectRatio`, the size is set to (w, h).
- If mode is `Qt::KeepAspectRatio`, the current size is scaled to a rectangle as large as possible inside (w, h), preserving the aspect ratio.
- If mode is `Qt::KeepAspectRatioByExpanding`, the current size is scaled to a rectangle as small as possible outside (w, h), preserving the aspect ratio.

Example:

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

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

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

See also boundedTo(), expandedTo(), setWidth(), and setHeight().

### void QSize::scale ( const QSize & s, Qt::AspectRatioMode mode )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Equivalent to scale(s.width(), s.height(), mode).

### void QSize::setHeight ( int h )

Sets the height to h.

See also height(), setWidth(), expandedTo(), boundedTo(), scale(), and transpose().

### void QSize::setWidth ( int w )

Sets the width to w.

See also width(), setHeight(), expandedTo(), boundedTo(), scale(), and transpose().

### void QSize::transpose ()

Swaps the width and height values.

See also expandedTo(), boundedTo(), setWidth(), and setHeight().

### int QSize::width () const

Returns the width.

See also height().

### QSize & QSize::operator*= ( int c )

Multiplies both the width and height by c and returns a reference to the size.

See also scale().

### QSize & QSize::operator*= ( double c )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Multiplies both the width and height by c and returns a reference to the size.

Note that the result is truncated.

### QSize & QSize::operator+= ( const QSize & s )

Adds s to the size and returns a reference to this size.

Example:

        QSize s( 3, 7);
        QSize r(-1, 4);
        s += r;                        // s becomes (2,11)

### QSize & QSize::operator-= ( const QSize & s )

Subtracts s from the size and returns a reference to this size.

Example:

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

### QSize & QSize::operator/= ( int c )

Divides both the width and height by c and returns a reference to the size.

See also scale().

### QSize & QSize::operator/= ( double c )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Divides both the width and height by c and returns a reference to the size.

Note that the result is truncated.

See also scale().

## Related Non-Members

### bool operator!= ( const QSize & s1, const QSize & s2 )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Returns true if s1 and s2 are different; otherwise returns false.

### const QSize operator* ( const QSize & s, int c )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Multiplies s by c and returns the result.

See also scale().

### const QSize operator* ( int c, const QSize & s )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Multiplies s by c and returns the result.

See also scale().

### const QSize operator* ( const QSize & s, double c )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Multiplies s by c and returns the result.

See also scale().

### const QSize operator* ( double c, const QSize & s )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Multiplies s by c and returns the result.

See also scale().

### const QSize operator+ ( const QSize & s1, const QSize & s2 )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Returns the sum of s1 and s2; each component is added separately.

See also scale().

### const QSize operator- ( const QSize & s1, const QSize & s2 )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Returns s2 subtracted from s1; each component is subtracted separately.

See also scale().

### const QSize operator/ ( const QSize & s, int c )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Divides s by c and returns the result.

See also scale().

### const QSize operator/ ( const QSize & s, double c )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Divides s by c and returns the result.

Note that the result is truncated.

See also scale().

### QDataStream & operator<< ( QDataStream & s, const QSize & sz )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Writes the size sz to the stream s and returns a reference to the stream.

See also Format of the QDataStream operators.

### bool operator== ( const QSize & s1, const QSize & s2 )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Returns true if s1 and s2 are equal; otherwise returns false.

### QDataStream & operator>> ( QDataStream & s, QSize & sz )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Reads the size from the stream s into size sz and returns a reference to the stream.

See also Format of the QDataStream operators.