QCursor Class
La classe QCursor permet de créer un curseur de souris de forme arbitraire. En savoir plus...
| En-tête : | #include <QCursor> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
- Liste de tous les membres, y compris les membres hérités
- Membres obsolètes
- QCursor fait partie des classes partagées implicitement.
Fonctions publiques
| QCursor() | |
| QCursor(Qt::CursorShape shape) | |
| QCursor(const QPixmap &pixmap, int hotX = -1, int hotY = -1) | |
| QCursor(const QBitmap &bitmap, const QBitmap &mask, int hotX = -1, int hotY = -1) | |
| QCursor(const QCursor &c) | |
| QCursor(QCursor &&other) | |
| ~QCursor() | |
| QBitmap | bitmap() const |
| QPoint | hotSpot() const |
| QBitmap | mask() const |
| QPixmap | pixmap() const |
| void | setShape(Qt::CursorShape shape) |
| Qt::CursorShape | shape() const |
| void | swap(QCursor &other) |
| operator QVariant() const | |
| QCursor & | operator=(QCursor &&other) |
| QCursor & | operator=(const QCursor &c) |
Membres publics statiques
| QPoint | pos() |
| QPoint | pos(const QScreen *screen) |
| void | setPos(int x, int y) |
| void | setPos(QScreen *screen, int x, int y) |
| void | setPos(const QPoint &p) |
| void | setPos(QScreen *screen, const QPoint &p) |
Éléments non membres associés
| bool | operator!=(const QCursor &lhs, const QCursor &rhs) |
| QDataStream & | operator<<(QDataStream &stream, const QCursor &cursor) |
| bool | operator==(const QCursor &lhs, const QCursor &rhs) |
| QDataStream & | operator>>(QDataStream &stream, QCursor &cursor) |
Description détaillée
Cette classe sert principalement à créer des curseurs de souris associés à des widgets particuliers, ainsi qu’à obtenir et à définir la position du curseur de la souris.
Qt propose plusieurs formes de curseurs standard, mais vous pouvez également créer des formes de curseurs personnalisées à partir d'une image de fond ( QBitmap), d'un masque et d'une zone active (hotspot).
Pour associer un curseur à un widget, utilisez ` QWidget::setCursor()`. Pour associer un curseur à tous les widgets (généralement pendant une courte durée), utilisez ` QGuiApplication::setOverrideCursor()`.
Pour définir une forme de curseur, utilisez la fonction ` QCursor::setShape()` ou le constructeur de `QCursor` qui prend la forme en argument ; vous pouvez également utiliser l’un des curseurs prédéfinis dans l’énumération ` Qt::CursorShape `.
Si vous souhaitez créer un curseur à partir de votre propre image bitmap, utilisez soit le constructeur QCursor qui prend une image bitmap et un masque en paramètres, soit le constructeur qui prend une image pixmap en paramètre.
Pour définir ou récupérer la position du curseur de la souris, utilisez les méthodes statiques QCursor::pos() et QCursor::setPos().
Remarque : il est possible de créer un `QCursor` avant ` QGuiApplication`, mais cela n’a d’utilité que pour servir de marque-place à un véritable `QCursor` créé après ` QGuiApplication`. Tenter d’utiliser un `QCursor` créé avant ` QGuiApplication ` entraînera un plantage.
Remarque à l'attention des utilisateurs de X11
Sous X11, Qt prend en charge la bibliothèque Xcursor, qui permet d’utiliser des thèmes d’icônes en couleur. Le tableau ci-dessous indique le nom de curseur utilisé pour chaque valeur de Qt::CursorShape. Si un curseur ne peut être trouvé à l’aide du nom indiqué ci-dessous, un curseur X11 standard sera utilisé à la place. Remarque : X11 ne fournit pas de curseurs adaptés à toutes les valeurs possibles de l’ Qt::CursorShape. Il est possible que certains curseurs soient tirés du thème Xcursor, tandis que d’autres utiliseront un curseur bitmap interne.
| Shape | Qt::CursorShape Valeur | Nom du curseur | Forme | Qt::CursorShape Valeur | Nom du curseur |
|---|---|---|---|---|---|
![]() | Qt::ArrowCursor | left_ptr | ![]() | Qt::SizeVerCursor | size_ver |
![]() | Qt::UpArrowCursor | up_arrow | ![]() | Qt::SizeHorCursor | size_hor |
![]() | Qt::CrossCursor | cross | ![]() | Qt::SizeBDiagCursor | size_bdiag |
![]() | Qt::IBeamCursor | ibeam | ![]() | Qt::SizeFDiagCursor | size_fdiag |
![]() | Qt::WaitCursor | wait | ![]() | Qt::SizeAllCursor | size_all |
![]() | Qt::BusyCursor | left_ptr_watch | ![]() | Qt::SplitVCursor | split_v |
![]() | Qt::ForbiddenCursor | forbidden | ![]() | Qt::SplitHCursor | split_h |
![]() | Qt::PointingHandCursor | pointing_hand | ![]() | Qt::OpenHandCursor | openhand |
![]() | Qt::WhatsThisCursor | whats_this | ![]() | Qt::ClosedHandCursor | closedhand |
| Qt::DragMoveCursor | dnd-move ou move | Qt::DragCopyCursor | dnd-copy ou copy | ||
| Qt::DragLinkCursor | dnd-link ou link |
Voir aussi QWidget.
Documentation sur les fonctions membres
QCursor::QCursor()
Crée un curseur avec la forme de flèche par défaut.
QCursor::QCursor(Qt::CursorShape shape)
Crée un curseur avec l'shape spécifiée.
Voir Qt::CursorShape pour obtenir la liste des formes.
Voir également setShape().
[explicit] QCursor::QCursor(const QPixmap &pixmap, int hotX = -1, int hotY = -1)
Crée un curseur pixmap personnalisé.
pixmap est l'image. On lui attribue généralement un masque (défini à l'aide de ` QPixmap::setMask()`). ` hotX ` et ` hotY ` définissent la zone active du curseur.
Si hotX est négatif, il est défini sur pixmap().width()/2. Si hotY est négatif, il est défini sur pixmap().height()/2.
Les tailles de curseur valides dépendent du matériel d'affichage (ou du système de fenêtrage sous-jacent). Nous recommandons d'utiliser des curseurs de 32 x 32, car cette taille est prise en charge sur toutes les plateformes. Certaines plateformes prennent également en charge les curseurs de 16 x 16, 48 x 48 et 64 x 64.
Voir également QPixmap::QPixmap() et QPixmap::setMask().
QCursor::QCursor(const QBitmap &bitmap, const QBitmap &mask, int hotX = -1, int hotY = -1)
Crée un curseur bitmap personnalisé.
bitmap et mask constituent le bitmap. hotX et hotY définissent la zone sensible du curseur.
Si hotX est négatif, il est défini sur bitmap().width()/2. Si hotY est négatif, il est défini sur bitmap().height()/2.
Les bits d’ bitmap (B) et de mask (M) du curseur sont combinés comme suit :
- B=1 et M=1 donnent du noir.
- B = 0 et M = 1 donne du blanc.
- B = 0 et M = 0 donne la transparence.
- B=1 et M=0 donne un résultat XOR sous Windows, des résultats indéfinis sur toutes les autres plateformes.
Utilisez l’ Qt::color0 de couleur globale Qt pour dessiner des pixels de 0 et Qt::color1 pour dessiner des pixels de 1 dans les images bitmap.
Les tailles de curseur valides dépendent du matériel d'affichage (ou du système de fenêtrage sous-jacent). Nous recommandons d'utiliser des curseurs de 32 x 32, car cette taille est prise en charge sur toutes les plateformes. Certaines plateformes prennent également en charge les curseurs de 16 x 16, 48 x 48 et 64 x 64.
Voir également QBitmap::QBitmap() et QBitmap::setMask().
QCursor::QCursor(const QCursor &c)
Crée une copie du curseur c.
[noexcept] QCursor::QCursor(QCursor &&other)
Crée un curseur à partir de ` other`. Une fois le curseur déplacé, les seules opérations valides sur ` other ` sont la destruction et l'affectation (par déplacement ou par copie). Les effets de l'appel de toute autre fonction membre sur une instance à partir de laquelle le curseur a été déplacé sont indéfinis.
[noexcept] QCursor::~QCursor()
Supprime le curseur.
QBitmap QCursor::bitmap() const
Renvoie l'image bitmap du curseur, ou une image bitmap nulle s'il s'agit d'un des curseurs standard.
QPoint QCursor::hotSpot() const
Renvoie la position du curseur, ou (0, 0) s'il s'agit d'un des curseurs standard.
QBitmap QCursor::mask() const
Renvoie le masque bitmap du curseur, ou un bitmap nul s'il s'agit d'un des curseurs standard.
QPixmap QCursor::pixmap() const
Renvoie l'image du curseur. Cette fonction n'est valable que si le curseur est un curseur de type « pixmap ».
[static] QPoint QCursor::pos()
Renvoie la position du curseur (point actif) de l'écran principal en coordonnées globales de l'écran.
Vous pouvez appeler la fonction ` QWidget::mapFromGlobal()` pour la convertir en coordonnées de widget.
Remarque : la position est interrogée auprès du système de fenêtrage. Si des événements de souris sont générés par d’autres moyens (par exemple, via QWindowSystemInterface dans un test unitaire), ces faux mouvements de souris ne seront pas pris en compte dans la valeur renvoyée.
Remarque : sur les plateformes dépourvues de système de fenêtrage ou sur lesquelles les curseurs ne sont pas disponibles, la position renvoyée est basée sur les événements de déplacement de la souris générés via QWindowSystemInterface.
Voir également setPos(), QWidget::mapFromGlobal(), QWidget::mapToGlobal() et QGuiApplication::primaryScreen().
[static] QPoint QCursor::pos(const QScreen *screen)
Renvoie la position du curseur (zone sensible) de l'screen, exprimée en coordonnées globales de l'écran.
Vous pouvez appeler la fonction ` QWidget::mapFromGlobal()` pour la convertir en coordonnées du widget.
Voir également ` setPos()`, ` QWidget::mapFromGlobal()` et ` QWidget::mapToGlobal()`.
[static] void QCursor::setPos(int x, int y)
Déplace le curseur (zone sensible) de l'écran principal vers la position globale à l'écran (x, y).
Vous pouvez appeler la fonction ` QWidget::mapToGlobal()` pour convertir les coordonnées d’un widget en coordonnées globales de l’écran.
Voir également pos(), QWidget::mapFromGlobal(), QWidget::mapToGlobal() et QGuiApplication::primaryScreen().
[static] void QCursor::setPos(QScreen *screen, int x, int y)
Déplace le curseur (zone sensible) de l'screen vers la position globale à l'écran (x, y).
Vous pouvez appeler la fonction ` QWidget::mapToGlobal()` pour convertir les coordonnées du widget en coordonnées globales de l'écran.
Remarque : l'appel de cette fonction entraîne une modification de la position du curseur via le système de fenêtrage. Le système de fenêtrage réagit généralement en envoyant des événements de souris à la fenêtre de l'application. Cela signifie que l’utilisation de cette fonction doit être évitée dans les tests unitaires et partout où de faux événements de souris sont injectés via `QWindowSystemInterface`, car l’état de la souris du système de fenêtrage (en ce qui concerne les boutons, par exemple) peut ne pas correspondre à l’état indiqué dans les événements générés par l’application.
Remarque : sur les plateformes dépourvues de système de fenêtrage ou ne prenant pas en charge les curseurs, cette fonction peut ne rien faire.
Voir également pos(), QWidget::mapFromGlobal() et QWidget::mapToGlobal().
[static] void QCursor::setPos(const QPoint &p)
Déplace le curseur (zone interactive) vers la position globale à l'écran correspondant au point p.
Il s'agit d'une fonction surchargée.
[static] void QCursor::setPos(QScreen *screen, const QPoint &p)
Déplace le curseur (zone sensible) vers la position globale à l'écran de l'screen, au point p.
Il s'agit d'une fonction surchargée.
void QCursor::setShape(Qt::CursorShape shape)
Définit le curseur sur la forme identifiée par shape.
Voir Qt::CursorShape pour la liste des formes de curseur.
Voir également shape().
Qt::CursorShape QCursor::shape() const
Renvoie l'identifiant de la forme du curseur.
Voir aussi setShape().
[noexcept] void QCursor::swap(QCursor &other)
Permute ce curseur avec celui de other. Cette opération est très rapide et ne pose jamais de problème.
QCursor::operator QVariant() const
Renvoie le curseur sous la forme d'un objet de type ` QVariant`.
[noexcept] QCursor &QCursor::operator=(QCursor &&other)
Cette opération attribue « other » à cette instance de « QCursor ».
QCursor &QCursor::operator=(const QCursor &c)
Attribue la valeur « c » à ce curseur et renvoie une référence à ce curseur.
Éléments non membres associés
[noexcept] bool operator!=(const QCursor &lhs, const QCursor &rhs)
Opérateur d'inégalité. Renvoie l'équivalent de !(lhs == rhs).
Voir aussi operator==(const QCursor &lhs, const QCursor &rhs).
QDataStream &operator<<(QDataStream &stream, const QCursor &cursor)
Écrit l'cursor dans le fichier stream.
Voir également «Sérialisation des types de données Qt ».
[noexcept] bool operator==(const QCursor &lhs, const QCursor &rhs)
Opérateur d'égalité. Renvoie true si lhs et rhs ont la même valeur de shape() et, dans le cas de bitmap cursors, la même valeur de hotSpot() ainsi que soit la même valeur de pixmap(), soit la même valeur de bitmap() et de mask().
Remarque : lors de la comparaison de curseurs bitmap, cette fonction ne compare que l’ cache keys des bitmaps, et non chaque pixel.
Voir également operator!=(const QCursor &lhs, const QCursor &rhs).
QDataStream &operator>>(QDataStream &stream, QCursor &cursor)
Lit le fichier « cursor » à partir de l'stream.
Voir également «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.

















