QRectLa classe QRect d�finit un rectangle dans le plan utilisant une pr�cision enti�re. Plus d'informations... #include <QRect> Voir la position dans l'arbre des classes. Description d�taill�eLa classe QRect d�finit un rectangle dans le plan utilisant une pr�cision enti�re. Un rectangle est normalement d�fini par son coin sup�rieur gauche et sa taille. La taille (hauteur et largeur) d'un QRect est toujours �quivalente au rectangle math�matique qui sert de base pour son rendu. Un QRect peut-�tre construit avec un ensemble d'entiers d�signant l'abscisse, l'ordonn�e, la largeur et la hauteur ou bien avec un QPoint et un QSize. Le code suivant cr�e deux rectangles identiques. QRect r1(100, 200, 11, 16); QRect r2(QPoint(100, 200), QSize(11, 16)); Il y a un troisi�me constructeur qui cr�e un QRect gr�ce aux coordonn�es des coins sup�rieur gauche et inf�rieur droit mais nous vous recommandons d'�viter de l'utiliser. En effet, pour des raisons historiques, les valeurs retourn�es par les fonctions bottom() et right() diff�rent du vrai coin inf�rieur droit du rectangle. La classe QRect propose une collection de fonctions qui retournent les diff�rentes coordonn�es du rectangle et permettent la manipulation de celles-ci. QRect propose �galement des fonctions pour d�placer le rectangle par rapport � ces diff�rentes coordonn�es. En outre, il existe une fonction moveTo() qui d�place le rectangle, de fa�on � ce que son coin sup�rieur gauche ait les coordonn�es donn�es. D'autre part, la fonction translate() d�place le rectangle suivant le d�calage donn� par rapport � sa position actuelle et la fonction translated() retourne une copie translat�e de ce rectangle. La fonction size() retourne les dimensions du rectangle dans un QSize. Les dimensions peuvent �galement �tre r�cup�r�es s�par�ment en utilisant les fonctions width() et height(). Pour manipuler les dimensions, utilisez les fonctions setSize(), setWidth() ou setHeight(). D'autre part, la taille peut �tre modifi�e en utilisant l'une des fonctions permettant de changer les coordonn�es du rectangle, comme par exemple setBottom() ou setRight(). La fonction contains() indique si le point donn� est � l'int�rieur du rectangle ou pas. La fonction intersects() retourne true si le rectangle intersecte un rectangle donn�. La classe QRect poss�de �galement la fonction intersected() qui retourne le rectangle d'intersection et la fonction united() qui retourne le rectangle qui englobe ce rectangle et celui pass� en argument :
La fonction isEmpty retourne true si left() > right() ou top() > bottom(). Notez qu'un rectangle vide n'est pas valide : la fonction isValid() retourne true si left() <= right() et top() <= bottom(). Un rectangle Null (isNull() == true), d'autre part, a une largeur et une hauteur nulles. Notez que, de par la d�finition des classes QRect et QRectF, un QRect vide est d�fini essentiellement de la m�me fa�on qu'un QRectF. Finalement, les objets QRect peuvent �tre mis sous la forme de flux et compar�s. RenduQuand vous utilisez un peintre avec anti-cr�nelage, le contour d'un QRect sera dessin� sym�triquement des deux c�t�s du contour du rectangle math�matique. Cependant, quand vous utilisez un peintre avec cr�nelage (par d�faut), le dessin ne s'effectue pas de la m�me mani�re. Dans ce cas, quand vous utilisez un pinceau d'un pixel de largeur, le contour du QRect sera dessin� � droite et en dessous du contour du rectangle math�matique. Quand vous utilisez un pinceau de deux pixels de largeur, le contour sera divis� en son milieu par le rectangle math�matique. Ce sera le cas � chaque fois que la largeur du pinceau aura un nombre pair de pixel. Quand le nombre de pixels du pinceau est impair, en revanche, le pixel suppl�mentaire sera dessin� � droite et en dessous du rectangle math�matique comme dans le cas d'un pinceau d'un pixel.
Coordonn�esLa classe QRect propose une collection de fonctions qui retournent les diff�rentes coordonn�es du rectangle et permet la manipulation de celles-ci. QRect propose �galement des fonctions pour d�placer le rectangle par rapport � ces diff�rentes coordonn�es. Prenons pour exemple les fonctions left(), setLeft() et moveLeft() : left() retourne l'abscisse de l'ar�te gauche du rectangle, setLeft() d�finit l'abscisse de l'ar�te gauche du rectangle � l'abscisse x donn�e (ce qui peut changer la largeur mais jamais l'ar�te droite du rectangle) et moveLeft() d�place horizontalement le rectangle entier, de fa�on � ce que son ar�te gauche ait l'abscisse x donn�e et que sa taille reste inchang�e. Notez que, pour des raisons historiques, les valeurs retourn�es par les fonctions bottom() et right() diff�rent du vrai coin inf�rieur droit du rectangle : la fonction right() retourne left() + width() - 1 et la fonction bottom() top() + height() - 1. Il en va de m�me pour le point retourn� par la fonction bottomRight(). En outre, l'abscisse et l'ordonn�e des fonctions topRight() et bottomLeft() contiennent respectivement la m�me diff�rence par rapport � la vraie ar�te de droite et par rapport � la vraie ar�te inf�rieure. Nous vous recommandons d'utiliser x() + width() et y() + height() pour trouver le vrai coin inf�rieur droit et d'�viter right() et bottom(). Une autre solution est d'utiliser QRectF : la classe QRectF d�finit un rectangle dans le plan en utilisant une pr�cision d�cimale pour les coordonn�es et les fonctions QRectF::right() et QRectF::bottom() retournent bien les vraies coordonn�es de la droite et du bas du rectangle. Il est �galement possible d'ajuster les coordonn�es du rectangle en utilisant la fonction adjust() ainsi que de r�cup�rer un nouveau rectangle bas� sur les ajustements du rectangle original en utilisant la fonction adjusted(). Si la hauteur ou la largeur est n�gative, utilisez la fonction normalized() pour r�cup�rer un rectangle dont les coins ont �t� �chang�s. En outre, la classe QRect propose la fonction getCoords() qui extrait la position des coins sup�rieur gauche et inf�rieur droit du rectangle, ainsi que la fonction getRect() qui extrait la position du coin sup�rieur gauche du rectangle, avec sa largeur et sa hauteur. Utilisez les fonctions setCoords() et setRect() pour manipuler toutes les coordonn�es et dimensions du rectangle en une seule fois. Fonctions membresQRect::QRect ()Construit un rectangle vide. Voir aussi isNull(). QRect::QRect(const QPoint& topLeft, const QPoint& bottomRight)Construit un rectangle avec les coins topLeft et bottomRight donn�s. Voir aussi setTopLeft() et setBottomRight(). QRect::QRect ( const QPoint & topLeft, const QSize & size )Construit un rectangle avec le coin topLeft donn� et la taille size donn�e. Voir aussi setTopLeft() et setSize(). QRect::QRect(int x, int y, int width, int height)Construit un rectangle dont le coin sup�rieur gauche a pour coordonn�es (x, y) et qui a pour largeur width et pour hauteur height. Voir aussi setRect(). void QRect::adjust(int dx1, int dy1, int dx2, int dy2)Ajoute respectivement dx1, dy1, dx2 et dy2 aux coordonn�es existantes du rectangle. Voir aussi adjusted() et setRect(). QRect QRect::adjusted(int dx1, int dy1, int dx2, int dy2) constRetourne un nouveau rectangle avec dx1, dy1, dx2 et dy2 ajout�s respectivement aux coordonn�es existantes du rectangle. Voir aussi adjust(). int QRect::bottom() constRetourne l'ordonn�e de l'ar�te inf�rieure. Notez que, pour des raisons historiques, cette fonctions retourne top() + height() - 1 ; utilisez y() + height() pour r�cup�rer la vraie ordonn�e. Voir aussi setBottom(), bottomLeft() et bottomRight(). QPoint QRect::bottomLeft() constRetourne la positon du coin inf�rieur gauche du rectangle. Notez que, pour des raisons historiques, cette fonction retourne QPoint(left(), top() + height() - 1). Voir aussi setBottomLeft(), bottom() et left(). QPoint QRect::bottomRight() constRetourne la position du coin inf�rieur droit du rectangle. Notez que, pour des raisons historiques, cette fonction retourne QPoint(left() + width() -1, top() + height() - 1). Voir aussi setBottomRight(), bottom() et right(). QPoint QRect::center() constRetourne le centre du rectangle. Voir aussi moveCenter(). bool QRect::contains(const QPoint& point, bool proper = false) constRetourne true si le point donn� est � l'int�rieur ou sur une ar�te du rectangle, sinon retourne false. Si l'argument proper vaut true, cette fonction ne renvoie true que si le point donn� est � l'int�rieur du rectangle (c'est-�-dire pas sur une ar�te). Voir aussi intersects(). bool QRect::contains(int x, int y, bool proper) constIl s'agit d'une fonction surcharg�e. Retourne true si le point (x, y) est � l'int�rieur ou sur une ar�te du rectangle, sinon retourne false. Si l'argument proper vaut true, cette fonction ne renvoie true que si le point donn� est enti�rement dans le rectangle (pas sur une ar�te). bool QRect::contains(int x, int y) constIl s'agit d'une fonction surcharg�e. Retourne true si le point (x, y) est � l'int�rieur du rectangle, sinon retourne false. bool QRect::contains(const QRect& rectangle, bool proper = false) constIl s'agit d'une fonction surcharg�e. Retourne true si le rectangle donn� est � l'int�rieur du rectangle, sinon retourne false. Si l'argument proper vaut true, cette fonction ne renvoie true que si le rectangle donn� est enti�rement dans le rectangle (pas sur une ar�te). void QRect::getCoords(int* x1, int* y1, int* x2, int* y2) constExtrait la position du coin sup�rieur gauche du rectangle vers *x1 et *y1 et la position du coin inf�rieur droit vers *x2 et*y2. Voir aussi setCoords() et getRect(). void QRect::getRect(int* x, int* y, int* width, int* height) constExtrait la position du coin sup�rieur gauche du rectangle vers *x et *y et ses dimensions vers *width (la largeur) et *height (la hauteur). Voir aussi setRect() et getCoords(). int QRect::height() constRetourne la hauteur du rectangle. Voir aussi setHeight(), width() et size(). QRect QRect::intersected(const QRect& rectangle) constRetourne l'intersection du rectangle avec le rectangle donn�. Notez que r.intersected(s) est �quivalent � r & s (voir operator&()). Cette fonction a �t� introduite dans Qt 4.2. Voir aussi intersects(), united() et operator&=(). bool QRect::intersects(const QRect& rectangle) constRetourne true si le rectangle intersecte le rectangle donn� (c'est-�-dire s'il y a au moins un pixel qui appartient aux deux rectangles), sinon retourne false. Le rectangle correspondant � cette intersection peut-�tre r�cup�r� avec la fonction intersected(). Voir aussi contains(). bool QRect::isEmpty() constRetourne true si le rectangle est vide, sinon retourne false. Un rectangle vide a left() > right() ou top() > bottom(). Un rectangle vide n'est pas valide (c'est-�-dire que isEmpty() == !isValid()). Utilisez la fonction normalized() pour r�cup�rer un rectangle o� les coins sont �chang�s. Voir aussi isNull(), isValid() et normalized(). bool QRect::isNull() constRetourne true si le rectangle est un rectangle Null, sinon retourne false. Un rectangle Null est un rectangle dont � la fois la hauteur et la largeur valent 0 (c'est-�-dire que right() == left() - 1 et bottom() == top() - 1). Un rectangle Null est �galement vide et, de fait, n'est pas valide. Voir aussi isEmpty() et isValid(). bool QRect::isValid() constRetourne true si le rectangle est valide, sinon retourne false. Un rectangle valide est tel que left() < right() et top() < bottom(). Notez que les op�rations complexes comme les intersections ne sont pas d�finies pour les rectangles non valides. Un rectangle valide n'est pas vide (c'est-�-dire, isValid() == !isEmpty()). Voir aussi isNull(), isEmpty() et normalized(). int QRect::left() constRetourne l'abscisse de l'ar�te gauche du rectangle. �quivalent � x(). Voir aussi setLeft(), topLeft() et bottomLeft(). void QRect::moveBottom(int y)D�place le rectangle verticalement, de fa�on � ce que l'ar�te inf�rieure du rectangle ait l'ordonn�e y donn�e. La taille du rectangle reste inchang�e. Voir aussi bottom(), setBottom() et moveTop(). void QRect::moveBottomLeft(const QPoint& position)D�place le rectangle, de fa�on � ce que son coin inf�rieur gauche soit � la position donn�e. La taille du rectangle reste inchang�e. Voir aussi setBottomLeft(), moveBottom() et moveLeft(). void QRect::moveBottomRight(const QPoint& position)D�place le rectangle, de fa�on � ce que son coin inf�rieur droit soit � la position donn�e. La taille du rectangle reste inchang�e. Voir aussi setBottomRight(), moveRight() et moveBottom(). void QRect::moveCenter(const QPoint& position)D�place le rectangle, de fa�on � ce que son centre soit � la position donn�e. La taille du rectangle reste inchang�e. Voir aussi center(). void QRect::moveLeft(int x)D�place le rectangle horizontalement, de fa�on � ce que l'ar�te gauche du rectangle ait l'abscisse x donn�e. La taille du rectangle reste inchang�e. Voir aussi left(), setLeft() et moveRight(). void QRect::moveRight(int x)D�place le rectangle horizontalement, de fa�on � ce que l'ar�te droite du rectangle ait l'abscisse x donn�e. La taille du rectangle reste inchang�e. Voir aussi right(), setRight() et moveLeft(). void QRect::moveTo(int x, int y)D�place le rectangle, de fa�on � ce que son coin sup�rieur gauche soit � la position (x,y) donn�e. La taille du rectangle reste inchang�e. Voir aussi translate() et moveTopLeft(). void QRect::moveTo(const QPoint& position)D�place le rectangle, de fa�on � ce que son coin sup�rieur gauche soit � la position donn�e. La taille du rectangle reste inchang�e. void QRect::moveTop(int y)D�place le rectangle verticalement, de fa�on � ce que l'ar�te sup�rieure du rectangle ait l'ordonn�e y donn�e. La taille du rectangle reste inchang�e. Voir aussi top(), setTop() et moveBottom(). void QRect::moveTopLeft(const QPoint& position)D�place le rectangle de fa�on � ce que son coin sup�rieur gauche soit � la position donn�e. La taille du rectangle reste inchang�e. Voir aussi setTopLeft(), moveTop() et moveLeft(). void QRect::moveTopRight ( const QPoint & position )D�place le rectangle de fa�on � ce que son coin sup�rieur droit soit � la position donn�e. La taille du rectangle reste inchang�e. Voir aussi setTopRight(), moveTop() et moveRight(). QRect QRect::normalized () constRetourne un rectangle normalis�, c'est-�-dire un rectangle qui a une hauteur et une largeur non nulles. Si width() < 0, la fonction �change les coins droits et gauches, de m�me pour les coins sup�rieurs et inf�rieurs si height() < 0. Voir aussi isValid() et isEmpty(). int QRect::right () constRetourne l'abscisse de l'ar�te droite du rectangle. Notez que, pour des raisons historiques, cette fonction retourne left() + width() - 1. Utilisez x() + width() pour r�cup�rer la vraie abscisse. Voir aussi setRight(), topRight() et bottomRight(). void QRect::setBottom ( int y )D�finit l'ordonn�e de l'ar�te inf�rieure du rectangle � l'ordonn�e y donn�e. Ceci peut changer la hauteur mais jamais l'ar�te sup�rieure du rectangle. Voir aussi bottom() et moveBottom(). void QRect::setBottomLeft ( const QPoint & position )D�finit la position du coin inf�rieur gauche du rectangle � la position donn�e. Ceci peut changer la taille mais jamais le coin sup�rieur droit du rectangle. Voir aussi bottomLeft() and moveBottomLeft(). void QRect::setBottomRight ( const QPoint & position )D�finit la position du coin inf�rieur droit du rectangle � la position donn�e. Ceci peut changer la taille mais jamais le coin sup�rieur gauche du rectangle. Voir aussi bottomRight() et moveBottomRight(). void QRect::setCoords ( int x1, int y1, int x2, int y2 )D�finit les coordonn�es du coin sup�rieur gauche du rectangle � (x1,y1) et les coordonn�es de son coin inf�rieur droit � (x2,y2). Voir aussi coords(), getCoords() et setRect(). void QRect::setHeight ( int height )D�finit la hauteur du rectangle � la height donn�e. L'ar�te inf�rieure est d�plac�e mais l'ar�te sup�rieure reste inchang�e. Voir aussi height() et setSize(). void QRect::setLeft ( int x )D�finit l'abscisse de l'ar�te gauche du rectangle � l'abscisse x donn�e. Ceci peut changer la taille mais jamais l'ar�te droite du rectangle. �quivalent � setX(). Voir aussi left() and moveLeft(). void QRect::setRect ( int x, int y, int width, int height )D�finit les coordonn�es du coin sup�rieur gauche du rectangle � (x, y), sa largeur � la width donn�e et sa hauteur � la height donn�e. Voir aussi rect(), getRect() et setCoords(). void QRect::setRight ( int x )D�finit l'abscisse de l'ar�te droite du rectangle � l'abscisse x donn�e. Ceci peut changer la largeur mais jamais l'ar�te gauche du rectangle. Voir aussi right() et moveRight(). void QRect::setSize ( const QSize & size )D�finit la taille du rectangle � la size donn�e. Le coin sup�rieur gauche n'est pas d�plac�. Voir aussi size(), setWidth() et setHeight(). void QRect::setTop ( int y )D�finit l'ordonn�e de l'ar�te sup�rieure du rectangle � l'ordonn�e y donn�e. Ceci peut changer la hauteur mais jamais l'ar�te inf�rieure du rectangle. �quivalent � setY(). Voir aussi top() et moveTop(). void QRect::setTopLeft ( const QPoint & position )D�finit le coin sup�rieur gauche du rectangle � la position donn�e. Cela peut changer la taille mais cela ne changera jamais la position du coin inf�rieur droit du rectangle. Voir aussi topLeft() et moveTopLeft(). void QRect::setTopRight ( const QPoint & position )D�finit le coin sup�rieur droit du rectangle � la position donn�e. Cela peut changer la taille mais cela ne changera jamais la position du coin inf�rieur gauche du rectangle. Voir aussi topRight() et moveTopRight(). void QRect::setWidth ( int width )D�finit la largeur du rectangle � la width donn�e. L'ar�te de droite est d�plac�e mais l'ar�te de gauche reste inchang�e. Voir aussi width() et setSize(). void QRect::setX ( int x )D�finit l'abscisse de l'ar�te gauche du rectangle � l'abscisse x donn�e. Ceci peut changer la taille mais jamais l'ar�te droite du rectangle. �quivalent � setLeft(). Voir aussi x(), setY() et setTopLeft(). void QRect::setY ( int y )D�finit l'ordonn�e de l'ar�te sup�rieure du rectangle � l'ordonn�e y donn�e. Ceci peut changer la hauteur mais jamais l'ar�te inf�rieure du rectangle. �quivalent � setTop(). Voir aussi y(), setX() et setTopLeft(). QSize QRect::size () constRetourne la taille du rectangle. Voir aussi setSize(), width() et height(). int QRect::top () constRetourne l'ordonn�e de l'ar�te sup�rieure du rectangle. �quivalent � y(). Voir aussi setTop(), topLeft() et topRight(). QPoint QRect::topLeft () constRetourne la position du coin sup�rieur gauche du rectangle. Voir aussi setTopLeft(), top() et left(). QPoint QRect::topRight () constRetourne la position du coin sup�rieur droit du rectangle. Notez que, pour des raisons historiques, cette fonction retourne QPoint(left() + width() -1, top()). Voir aussi setTopRight(), top() et right(). void QRect::translate ( int dx, int dy )D�place le rectangle de dx selon l'axe x et de dy selon l'axe y, par rapport � sa position actuelle. Des valeurs positives de dx et dy d�placent le rectangle vers la droite et le bas. Voir aussi moveTopLeft(), moveTo() et translated(). void QRect::translate ( const QPoint & offset )Il s'agit d'une fonction surcharg�e. D�place le rectangle de offset.x() selon l'axe x et de offset.y() selon l'axe y, par rapport � sa position actuelle. QRect QRect::translated ( int dx, int dy ) constRetourne une copie du rectangle translat�e de dx selon l'axe x et de dy selon l'axe y, par rapport � sa position actuelle. Des valeurs positives de dx et dy d�placent le rectangle vers la droite et le bas. Voir aussi translate(). QRect QRect::translated ( const QPoint & offset ) constIl s'agit d'une fonction surcharg�e. Retourne une copie du rectangle translat�e de offset.x() selon l'axe x et de offset.y() selon l'axe y, par rapport � sa position actuelle. QRect QRect::united ( const QRect & rectangle ) constRetourne le rectangle englobant ce rectangle et le rectangle donn�. Cette fonction a �t� introduite dans Qt 4.2. Voir aussi intersected(). int QRect::width () constRetourne la largeur du rectangle. Voir aussi setWidth(), height() et size(). int QRect::x () constRetourne l'abscisse de l'ar�te gauche du rectangle. �quivalent � left(). Voir aussi setX(), y() et topLeft(). int QRect::y () constRetourne l'ordonn�e de l'ar�te sup�rieure du rectangle. �quivalent � top(). Voir aussi setY(), x() et topLeft(). QRect QRect::operator& ( const QRect & rectangle ) constRetourne l'intersection du rectangle avec le rectangle donn�. Retourne un rectangle vide s'il n'y a pas d'intersection. Voir aussi operator&=() et intersected(). QRect & QRect::operator&= ( const QRect & rectangle )Intersecte le rectangle avec le rectangle donn�. Voir aussi intersected() et operator&(). QRect QRect::operator| ( const QRect & rectangle ) constRetourne le rectangle englobant ce rectangle et le rectangle donn�. Voir aussi operator|=() et united(). QRect & QRect::operator|= ( const QRect & rectangle )R�unit ce rectangle et le rectangle donn�. Voir aussi united() et operator|(). En relation mais non membres de la classebool operator!=(const QRect& r1, const QRect& r2)Retourne true si les rectangles r1 et r2 sont diff�rents, sinon retourne false. QDataStream & operator<< ( QDataStream & stream, const QRect & rectangle )�crit le rectangle donn� dans le flux stream donn� et retourne une r�f�rence sur le flux. Voir aussi s�rialisation des types de donn�es Qt. bool operator== ( const QRect & r1, const QRect & r2 )Retourne true si les rectangles r1 et r2 sont �gaux, sinon retourne false. QDataStream & operator>> ( QDataStream & stream, QRect & rectangle )Lit un rectangle � partir du flux stream donn�, la place dans le rectangle donn� et retourne une r�f�rence sur le flux. Voir aussi s�rialisation des types de donn�es Qt. RemerciementsMerci � Abdelhafid Hafidi et Nicolas Carion pour la traduction, � Jonathan Courtois, Thibaut Cuvelier et Maxime Gault pour la relecture ! |
Cette page est une traduction d'une page de la documentation de Qt, �crite par Nokia Corporation and/or its subsidiary(-ies). Les �ventuels probl�mes r�sultant d'une mauvaise traduction ne sont pas imputables � Nokia. | Qt 4.7 | |
Copyright © 2025 Developpez LLC. Tous droits r�serv�s Developpez LLC. Aucune reproduction, m�me partielle, ne peut �tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'� 3 ans de prison et jusqu'� 300 000 E de dommages et int�r�ts. Cette page est d�pos�e � la SACD. | ||
Vous avez d�nich� une erreur ? Un bug ? Une redirection cass�e ? Ou tout autre probl�me, quel qu'il soit ? Ou bien vous d�sirez participer � ce projet de traduction ? N'h�sitez pas � nous contacter ou par MP ! |