QCursor Class
La classe QCursor fournit un curseur de souris de forme arbitraire. Plus d'informations...
| 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 dépréciés
- 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) |
Non-membres apparenté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 est principalement utilisée pour créer des curseurs de souris associés à des widgets particuliers et pour obtenir et définir la position du curseur de la souris.
Qt XML dispose d'un certain nombre de formes de curseur standard, mais vous pouvez également créer des formes de curseur personnalisées basées sur QBitmap, un masque et un hotspot.
Pour associer un curseur à un widget, utilisez QWidget::setCursor(). Pour associer un curseur à tous les widgets (normalement pour une courte période), utilisez QGuiApplication::setOverrideCursor().
Pour définir la forme du curseur, utilisez QCursor::setShape() ou le constructeur de QCursor qui prend la forme en argument, ou vous pouvez utiliser l'un des curseurs prédéfinis définis dans l'énumération Qt::CursorShape.
Si vous voulez créer un curseur avec votre propre bitmap, utilisez soit le constructeur QCursor qui prend un bitmap et un masque, soit le constructeur qui prend un pixmap comme argument.
Pour définir ou obtenir 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 il n'est pas utile, sauf en tant que place-holder pour un vrai QCursor créé après QGuiApplication. Toute tentative d'utilisation d'un QCursor créé avant QGuiApplication entraînera un plantage.
Note pour les 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 du 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 appropriés pour toutes les valeurs possibles de Qt::CursorShape. Il est possible que certains curseurs proviennent du thème Xcursor, tandis que d'autres utiliseront un curseur bitmap interne.
| Forme | 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()
Construit un curseur avec la forme de flèche par défaut.
QCursor::QCursor(Qt::CursorShape shape)
Construit un curseur avec la forme spécifiée shape.
Voir Qt::CursorShape pour une liste de formes.
Voir aussi setShape().
[explicit] QCursor::QCursor(const QPixmap &pixmap, int hotX = -1, int hotY = -1)
Construit un curseur pixmap personnalisé.
pixmap est l'image. Il est habituel de lui donner un masque (défini à l'aide de QPixmap::setMask()). hotX et hotY définissent le point chaud du curseur.
Si hotX est négatif, il prend la valeur pixmap().width()/2. Si hotY est négatif, il prend la valeur pixmap().height()/2.
Les tailles de curseur valables dépendent du matériel d'affichage (ou du système de fenêtres sous-jacent). Nous recommandons d'utiliser des curseurs 32 x 32, car cette taille est prise en charge par toutes les plateformes. Certaines plateformes prennent également en charge les curseurs 16 x 16, 48 x 48 et 64 x 64.
Voir aussi QPixmap::QPixmap() et QPixmap::setMask().
QCursor::QCursor(const QBitmap &bitmap, const QBitmap &mask, int hotX = -1, int hotY = -1)
Construit un curseur bitmap personnalisé.
bitmap et mask constituent l'image bitmap. hotX et hotY définissent le point chaud du curseur.
Si hotX est négatif, il prend la valeur bitmap().width()/2. Si hotY est négatif, il prend la valeur bitmap().height()/2.
Les bits du curseur bitmap (B) et mask (M) sont combinés comme suit :
- B=1 et M=1 donnent le noir.
- B=0 et M=1 donnent du blanc.
- B=0 et M=0 donnent du transparent.
- B=1 et M=0 donne un résultat XOR sous Windows, des résultats indéfinis sur toutes les autres plateformes.
Utilisez la couleur globale de Qt XML Qt::color0 pour dessiner des pixels 0 et Qt::color1 pour dessiner des pixels 1 dans les bitmaps.
Les tailles de curseur valables dépendent du matériel d'affichage (ou du système de fenêtres sous-jacent). Nous recommandons d'utiliser des curseurs 32 x 32, car cette taille est prise en charge par toutes les plateformes. Certaines plateformes prennent également en charge les curseurs 16 x 16, 48 x 48 et 64 x 64.
Voir aussi QBitmap::QBitmap() et QBitmap::setMask().
QCursor::QCursor(const QCursor &c)
Construit une copie du curseur c.
[noexcept] QCursor::QCursor(QCursor &&other)
Move-construit un curseur à partir de other. Après avoir été déplacé de, les seules opérations valables sur other sont la destruction et l'affectation (déplacement et copie). Les effets de l'appel de toute autre fonction membre sur une instance déplacée sont indéfinis.
[noexcept] QCursor::~QCursor()
Détruit 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 le point chaud 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 masque bitmap nul s'il s'agit d'un des curseurs standard.
QPixmap QCursor::pixmap() const
Renvoie le pixmap du curseur. Ceci n'est valable que si le curseur est un curseur pixmap.
[static] QPoint QCursor::pos()
Renvoie la position du curseur (point chaud) de l'écran principal en coordonnées globales d'écran.
Vous pouvez appeler QWidget::mapFromGlobal() pour la convertir en coordonnées de widget.
Remarque : la position est demandée au système de fenêtrage. Si des événements 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 reflétés dans la valeur renvoyée.
Remarque : sur les plates-formes où il n'existe pas de système de fenêtrage ou de curseurs, la position renvoyée est basée sur les événements de déplacement de la souris générés par QWindowSystemInterface.
Voir aussi setPos(), QWidget::mapFromGlobal(), QWidget::mapToGlobal() et QGuiApplication::primaryScreen().
[static] QPoint QCursor::pos(const QScreen *screen)
Renvoie la position du curseur (point chaud) de screen en coordonnées globales de l'écran.
Vous pouvez appeler QWidget::mapFromGlobal() pour la convertir en coordonnées de widget.
Voir aussi setPos(), QWidget::mapFromGlobal() et QWidget::mapToGlobal().
[static] void QCursor::setPos(int x, int y)
Déplace le curseur (point chaud) de l'écran principal à la position globale de l'écran (x, y).
Vous pouvez appeler QWidget::mapToGlobal() pour convertir les coordonnées du widget en coordonnées de l'écran global.
Voir également pos(), QWidget::mapFromGlobal(), QWidget::mapToGlobal() et QGuiApplication::primaryScreen().
[static] void QCursor::setPos(QScreen *screen, int x, int y)
Déplace le curseur (point chaud) de screen à la position globale de l'écran (x, y).
Vous pouvez appeler 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 par l'intermédiaire du 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 des événements générés par l'application.
Remarque : sur les plates-formes où il n'y a pas de système de fenêtrage ou où les curseurs ne sont pas disponibles, cette fonction peut ne rien faire.
Voir aussi pos(), QWidget::mapFromGlobal() et QWidget::mapToGlobal().
[static] void QCursor::setPos(const QPoint &p)
Déplace le curseur (point chaud) à la position globale de l'écran au point p.
Il s'agit d'une fonction surchargée.
[static] void QCursor::setPos(QScreen *screen, const QPoint &p)
Déplace le curseur (point chaud) à la position globale de l'écran du site 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 aussi shape().
Qt::CursorShape QCursor::shape() const
Renvoie l'identifiant de la forme du curseur.
Voir aussi setShape().
[noexcept] void QCursor::swap(QCursor &other)
Remplace ce curseur par other. Cette opération est très rapide et n'échoue jamais.
QCursor::operator QVariant() const
Renvoie le curseur sous la forme d'un QVariant.
[noexcept] QCursor &QCursor::operator=(QCursor &&other)
Move-assigne other à cette instance QCursor.
QCursor &QCursor::operator=(const QCursor &c)
Attribue c à ce curseur et renvoie une référence à ce curseur.
Non-membres apparenté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'adresse cursor dans l'adresse stream.
Voir aussi Serializing Qt Data Types (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 le même shape() et, dans le cas de bitmap cursors, le même hotSpot() et soit le même pixmap(), soit les mêmes bitmap() et mask().
Remarque : lors de la comparaison de curseurs bitmap, cette fonction ne compare que les cache keys des bitmaps, et non chaque pixel.
Voir aussi operator!=(const QCursor &lhs, const QCursor &rhs).
QDataStream &operator>>(QDataStream &stream, QCursor &cursor)
Lit l'adresse cursor à partir de l'adresse stream.
Voir aussi Serializing Qt Data Types.
© 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.

















