QCursor Class▲
-
Header: QCursor
-
CMake:
find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
-
qmake: QT += gui
-
Group: QCursor is part of appearance, shared
Detailed Description▲
This class is mainly used to create mouse cursors that are associated with particular widgets and to get and set the position of the mouse cursor.
Qt has a number of standard cursor shapes, but you can also make custom cursor shapes based on a QBitmap, a mask and a hotspot.
To associate a cursor with a widget, use QWidget::setCursor(). To associate a cursor with all widgets (normally for a short period of time), use QGuiApplication::setOverrideCursor().
To set a cursor shape use QCursor::setShape() or use the QCursor constructor which takes the shape as argument, or you can use one of the predefined cursors defined in the Qt::CursorShape enum.
If you want to create a cursor with your own bitmap, either use the QCursor constructor which takes a bitmap and a mask or the constructor which takes a pixmap as arguments.
To set or get the position of the mouse cursor use the static methods QCursor::pos() and QCursor::setPos().
Note: It is possible to create a QCursor before QGuiApplication, but it is not useful except as a place-holder for a real QCursor created after QGuiApplication. Attempting to use a QCursor that was created before QGuiApplication will result in a crash.
A Note for X11 Users▲
On X11, Qt supports the Xcursor library, which allows for full color icon themes. The table below shows the cursor name used for each Qt::CursorShape value. If a cursor cannot be found using the name shown below, a standard X11 cursor will be used instead. Note: X11 does not provide appropriate cursors for all possible Qt::CursorShape values. It is possible that some cursors will be taken from the Xcursor theme, while others will use an internal bitmap cursor.
Shape |
Qt::CursorShape Value |
Cursor Name |
Shape |
Qt::CursorShape Value |
Cursor Name |
---|---|---|---|---|---|
|
left_ptr |
|
size_ver |
||
|
up_arrow |
|
size_hor |
||
|
cross |
|
size_bdiag |
||
|
ibeam |
|
size_fdiag |
||
|
wait |
|
size_all |
||
|
left_ptr_watch |
|
split_v |
||
|
forbidden |
|
split_h |
||
|
pointing_hand |
|
openhand |
||
|
whats_this |
|
closedhand |
||
dnd-move or move |
dnd-copy or copy |
||||
dnd-link or link |
See Also▲
See also QWidget
Member Function Documentation▲
QCursor::QCursor()▲
Constructs a cursor with the default arrow shape.
QCursor::QCursor(Qt::CursorShape shape)▲
Constructs a cursor with the specified shape.
See Qt::CursorShape for a list of shapes.
See Also▲
See also setShape()
QCursor::QCursor(const QBitmap &bitmap, const QBitmap &mask, int hotX = -1, int hotY = -1)▲
Constructs a custom bitmap cursor.
bitmap and mask make up the bitmap. hotX and hotY define the cursor's hot spot.
If hotX is negative, it is set to the bitmap().width()/2. If hotY is negative, it is set to the bitmap().height()/2.
The cursor bitmap (B) and mask (M) bits are combined like this:
-
B=1 and M=1 gives black.
-
B=0 and M=1 gives white.
-
B=0 and M=0 gives transparent.
-
B=1 and M=0 gives an XOR'd result under Windows, undefined results on all other platforms.
Use the global Qt color Qt::color0 to draw 0-pixels and Qt::color1 to draw 1-pixels in the bitmaps.
Valid cursor sizes depend on the display hardware (or the underlying window system). We recommend using 32 x 32 cursors, because this size is supported on all platforms. Some platforms also support 16 x 16, 48 x 48, and 64 x 64 cursors.
See Also▲
See also QBitmap::QBitmap(), QBitmap::setMask()
[explicit] QCursor::QCursor(const QPixmap &pixmap, int hotX = -1, int hotY = -1)▲
Constructs a custom pixmap cursor.
pixmap is the image. It is usual to give it a mask (set using QPixmap::setMask()). hotX and hotY define the cursor's hot spot.
If hotX is negative, it is set to the pixmap().width()/2. If hotY is negative, it is set to the pixmap().height()/2.
Valid cursor sizes depend on the display hardware (or the underlying window system). We recommend using 32 x 32 cursors, because this size is supported on all platforms. Some platforms also support 16 x 16, 48 x 48, and 64 x 64 cursors.
See Also▲
See also QPixmap::QPixmap(), QPixmap::setMask()
QCursor::QCursor(const QCursor &c)▲
Constructs a copy of the cursor c.
[since 5.5] QCursor::QCursor(QCursor &&other)▲
Move-constructs a cursor from other. After being moved from, the only valid operations on other are destruction and (move and copy) assignment. The effects of calling any other member function on a moved-from instance are undefined.
This function was introduced in Qt 5.5.
QCursor::~QCursor()▲
Destroys the cursor.
QBitmap QCursor::bitmap() const▲
Returns the cursor bitmap, or a null bitmap if it is one of the standard cursors.
QPoint QCursor::hotSpot() const▲
Returns the cursor hot spot, or (0, 0) if it is one of the standard cursors.
QBitmap QCursor::mask() const▲
Returns the cursor bitmap mask, or a null bitmap if it is one of the standard cursors.
QPixmap QCursor::pixmap() const▲
Returns the cursor pixmap. This is only valid if the cursor is a pixmap cursor.
[static] QPoint QCursor::pos()▲
Returns the position of the cursor (hot spot) of the primary screen in global screen coordinates.
You can call QWidget::mapFromGlobal() to translate it to widget coordinates.
The position is queried from the windowing system. If mouse events are generated via other means (e.g., via QWindowSystemInterface in