QCursor Class
Die Klasse „QCursor“ stellt einen Mauszeiger mit beliebiger Form bereit. Mehr...
| Header: | #include <QCursor> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- Veraltete Mitglieder
- QCursor gehört zu den implizit gemeinsam genutzten Klassen.
Öffentliche Funktionen
| 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) |
Statische öffentliche Mitglieder
| 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) |
Verwandte Nicht-Mitglieder
| 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) |
Ausführliche Beschreibung
Diese Klasse wird hauptsächlich verwendet, um Mauszeiger zu erstellen, die bestimmten Widgets zugeordnet sind, sowie um die Position des Mauszeigers abzurufen und festzulegen.
Qt verfügt über eine Reihe von Standard-Cursorformen, Sie können jedoch auch benutzerdefinierte Cursorformen auf der Grundlage eines „ QBitmap “, einer Maske und eines Hotspots erstellen.
Um einen Cursor einem Widget zuzuordnen, verwenden Sie ` QWidget::setCursor()`. Um einen Cursor allen Widgets zuzuordnen (normalerweise für einen kurzen Zeitraum), verwenden Sie ` QGuiApplication::setOverrideCursor()`.
Um eine Cursorform festzulegen, verwenden Sie ` QCursor::setShape()` oder den `QCursor`-Konstruktor, der die Form als Argument entgegennimmt, oder Sie können einen der vordefinierten Cursor aus der Enumeration ` Qt::CursorShape ` verwenden.
Wenn Sie einen Cursor mit einer eigenen Bitmap erstellen möchten, verwenden Sie entweder den QCursor-Konstruktor, der eine Bitmap und eine Maske als Argumente entgegennimmt, oder den Konstruktor, der eine Pixmap als Argumente entgegennimmt.
Um die Position des Mauszeigers festzulegen oder abzurufen, verwenden Sie die statischen Methoden „ QCursor::pos()“ und „ QCursor::setPos()“.
Hinweis: Es ist möglich, einen QCursor vor dem Aufruf von ` QGuiApplication` zu erstellen, dies ist jedoch nur als Platzhalter für einen echten QCursor sinnvoll, der nach dem Aufruf von ` QGuiApplication` erstellt wird. Der Versuch, einen QCursor zu verwenden, der vor dem Aufruf von ` QGuiApplication ` erstellt wurde, führt zu einem Absturz.
Ein Hinweis für X11-Benutzer
Unter X11 unterstützt Qt die Xcursor-Bibliothek, die vollfarbige Icon-Themes ermöglicht. Die folgende Tabelle zeigt den Cursornamen, der für jeden Qt::CursorShape -Wert verwendet wird. Wenn ein Cursor unter dem unten angegebenen Namen nicht gefunden werden kann, wird stattdessen ein Standard-X11-Cursor verwendet. Hinweis: X11 stellt nicht für alle möglichen „ Qt::CursorShape “-Werte geeignete Cursor bereit. Es ist möglich, dass einige Cursor aus dem Xcursor-Theme übernommen werden, während andere einen internen Bitmap-Cursor verwenden.
| Form | Qt::CursorShape Wert | Cursor-Name | Form | Qt::CursorShape Wert | Cursorname |
|---|---|---|---|---|---|
![]() | 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 oder move | Qt::DragCopyCursor | dnd-copy oder copy | ||
| Qt::DragLinkCursor | dnd-link oder link |
Siehe auch QWidget.
Dokumentation zu Mitgliedsfunktionen
QCursor::QCursor()
Erstellt einen Cursor mit der Standard-Pfeilform.
QCursor::QCursor(Qt::CursorShape shape)
Erstellt einen Cursor mit dem angegebenen „ shape “.
Eine Liste der Formen finden Sie unter „ Qt::CursorShape “.
Siehe auch setShape().
[explicit] QCursor::QCursor(const QPixmap &pixmap, int hotX = -1, int hotY = -1)
Erstellt einen benutzerdefinierten Pixmap-Cursor.
pixmap ist das Bild. Üblicherweise wird ihm eine Maske zugewiesen (die mit ` QPixmap::setMask()` festgelegt wird). ` hotX ` und ` hotY ` definieren den Hotspot des Cursors.
Ist hotX negativ, wird er auf pixmap().width()/2 gesetzt. Ist hotY negativ, wird er auf pixmap().height()/2 gesetzt.
Gültige Cursorgrößen hängen von der Anzeigehardware (oder dem zugrunde liegenden Fenstersystem) ab. Wir empfehlen die Verwendung von 32 x 32-Cursorn, da diese Größe auf allen Plattformen unterstützt wird. Einige Plattformen unterstützen auch 16 x 16-, 48 x 48- und 64 x 64-Cursor.
Siehe auch „ QPixmap::QPixmap()“ und „ QPixmap::setMask()“.
QCursor::QCursor(const QBitmap &bitmap, const QBitmap &mask, int hotX = -1, int hotY = -1)
Erstellt einen benutzerdefinierten Bitmap-Cursor.
bitmap und „ mask “ bilden die Bitmap. „ hotX “ und „ hotY “ definieren den Hotspot des Cursors.
Ist „ hotX “ negativ, wird es auf „ bitmap().width()/2 “ gesetzt. Ist „ hotY “ negativ, wird es auf „ bitmap().height()/2 “ gesetzt.
Die Cursor-Bits „ bitmap “ (B) und „ mask “ (M) werden wie folgt kombiniert:
- B=1 und M=1 ergeben Schwarz.
- B=0 und M=1 ergibt Weiß.
- B=0 und M=0 ergibt transparent.
- B=1 und M=0 ergibt unter Windows ein XOR-Ergebnis, auf allen anderen Plattformen undefinierte Ergebnisse.
Verwenden Sie die globale Qt-Farbe „ Qt::color0 “, um 0-Pixel zu zeichnen, und „ Qt::color1 “, um 1-Pixel in den Bitmaps zu zeichnen.
Gültige Cursorgrößen hängen von der Anzeigehardware (oder dem zugrunde liegenden Fenstersystem) ab. Wir empfehlen die Verwendung von 32 x 32-Cursorn, da diese Größe auf allen Plattformen unterstützt wird. Einige Plattformen unterstützen auch 16 x 16-, 48 x 48- und 64 x 64-Cursor.
Siehe auch QBitmap::QBitmap() und QBitmap::setMask().
QCursor::QCursor(const QCursor &c)
Erstellt eine Kopie des Cursors c.
[noexcept] QCursor::QCursor(QCursor &&other)
Erstellt einen Cursor aus ` other`. Nach dem Verschieben sind die einzigen zulässigen Operationen auf ` other ` die Zerstörung sowie die Zuweisung (sowohl durch Verschieben als auch durch Kopieren). Die Auswirkungen des Aufrufs einer anderen Memberfunktion auf eine verschobene Instanz sind undefiniert.
[noexcept] QCursor::~QCursor()
Löscht den Cursor.
QBitmap QCursor::bitmap() const
Gibt die Cursor-Bitmap zurück oder eine Null-Bitmap, wenn es sich um einen der Standard-Cursor handelt.
QPoint QCursor::hotSpot() const
Gibt den Hotspot des Cursors zurück oder (0, 0), wenn es sich um einen der Standard-Cursor handelt.
QBitmap QCursor::mask() const
Gibt die Bitmap-Maske des Cursors zurück oder eine Null-Bitmap, wenn es sich um einen der Standard-Cursor handelt.
QPixmap QCursor::pixmap() const
Gibt die Pixmap des Cursors zurück. Dies gilt nur, wenn es sich bei dem Cursor um einen Pixmap-Cursor handelt.
[static] QPoint QCursor::pos()
Gibt die Position des Cursors (Hotspot) des primären Bildschirms in globalen Bildschirmkoordinaten zurück.
Sie können ` QWidget::mapFromGlobal()` aufrufen, um diese in Widget-Koordinaten umzuwandeln.
Hinweis: Die Position wird vom Fenstersystem abgefragt. Wenn Mausereignisse auf andere Weise erzeugt werden (z. B. über `QWindowSystemInterface` in einem Unit-Test), werden diese simulierten Mausbewegungen im Rückgabewert nicht berücksichtigt.
Hinweis: Auf Plattformen, auf denen kein Fenstersystem vorhanden ist oder keine Cursor zur Verfügung stehen, basiert die zurückgegebene Position auf den über `QWindowSystemInterface` generierten Mausbewegungsereignissen.
Siehe auch ` setPos()`, ` QWidget::mapFromGlobal()`, ` QWidget::mapToGlobal()` und ` QGuiApplication::primaryScreen()`.
[static] QPoint QCursor::pos(const QScreen *screen)
Gibt die Position des Cursors (Hotspot) des „ screen “ in globalen Bildschirmkoordinaten zurück.
Sie können die Funktion ` QWidget::mapFromGlobal()` aufrufen, um diese in Widget-Koordinaten umzuwandeln.
Siehe auch ` setPos()`, ` QWidget::mapFromGlobal()` und ` QWidget::mapToGlobal()`.
[static] void QCursor::setPos(int x, int y)
Verschiebt den Cursor (Hotspot) des primären Bildschirms an die globale Bildschirmposition (x, y).
Sie können ` QWidget::mapToGlobal()` aufrufen, um Widget-Koordinaten in globale Bildschirmkoordinaten umzuwandeln.
Siehe auch pos(), QWidget::mapFromGlobal(), QWidget::mapToGlobal() und QGuiApplication::primaryScreen().
[static] void QCursor::setPos(QScreen *screen, int x, int y)
Verschiebt den Cursor (Hotspot) des „ screen “ an die globale Bildschirmposition (x, y).
Sie können ` QWidget::mapToGlobal()` aufrufen, um Widget-Koordinaten in globale Bildschirmkoordinaten umzuwandeln.
Hinweis: Der Aufruf dieser Funktion führt zu einer Änderung der Cursorposition über das Fenstersystem. Das Fenstersystem reagiert in der Regel darauf, indem es Mausereignisse an das Fenster der Anwendung sendet. Das bedeutet, dass die Verwendung dieser Funktion in Unit-Tests und überall dort vermieden werden sollte, wo über `QWindowSystemInterface` gefälschte Mausereignisse eingefügt werden, da der Mauszustand des Fenstersystems (beispielsweise in Bezug auf Tasten) möglicherweise nicht mit dem Zustand in den von der Anwendung generierten Ereignissen übereinstimmt.
Hinweis: Auf Plattformen, auf denen kein Fenstersystem vorhanden ist oder keine Cursor verfügbar sind, führt diese Funktion möglicherweise keine Aktion aus.
Siehe auch pos(), QWidget::mapFromGlobal() und QWidget::mapToGlobal().
[static] void QCursor::setPos(const QPoint &p)
Verschiebt den Cursor (Hotspot) an die globale Bildschirmposition am Punkt p.
Dies ist eine überladene Funktion.
[static] void QCursor::setPos(QScreen *screen, const QPoint &p)
Verschiebt den Cursor (Hotspot) an die globale Bildschirmposition des „ screen “ am Punkt „ p “.
Dies ist eine überladene Funktion.
void QCursor::setShape(Qt::CursorShape shape)
Setzt den Cursor auf die Form, die unter shape angegeben ist.
Eine Liste der Cursorformen finden Sie unter Qt::CursorShape.
Siehe auch shape().
Qt::CursorShape QCursor::shape() const
Gibt die Kennung der Cursorform zurück.
Siehe auch „ setShape()“.
[noexcept] void QCursor::swap(QCursor &other)
Tauscht diesen Cursor gegen „ other “ aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.
QCursor::operator QVariant() const
Gibt den Cursor als ` QVariant` zurück.
[noexcept] QCursor &QCursor::operator=(QCursor &&other)
Weist „ other “ dieser „ QCursor “-Instanz zu.
QCursor &QCursor::operator=(const QCursor &c)
Weist diesem Cursor die Variable „ c “ zu und gibt eine Referenz auf diesen Cursor zurück.
Verwandte Nicht-Mitglieder
[noexcept] bool operator!=(const QCursor &lhs, const QCursor &rhs)
Ungleichheitsoperator. Gibt das Äquivalent von !(lhs == rhs) zurück.
Siehe auch operator==(const QCursor &lhs, const QCursor &rhs).
QDataStream &operator<<(QDataStream &stream, const QCursor &cursor)
Schreibt die „ cursor “ in die „ stream “.
Siehe auch „Serialisierung vonQt-Datentypen“.
[noexcept] bool operator==(const QCursor &lhs, const QCursor &rhs)
Gleichheitsoperator. Gibt „ true “ zurück, wenn „ lhs “ und „ rhs “ denselben Wert für „ shape()“ haben und, im Falle von „ bitmap cursors “, denselben Wert für „ hotSpot()“ sowie entweder denselben Wert für „ pixmap()“ oder denselben Wert für „ bitmap()“ und „ mask()“.
Hinweis: Beim Vergleich von Bitmap-Cursorn vergleicht diese Funktion nur die „ cache keys “ der Bitmaps, nicht jedes einzelne Pixel.
Siehe auch operator!=(const QCursor &lhs, const QCursor &rhs).
QDataStream &operator>>(QDataStream &stream, QCursor &cursor)
Liest die Datei „ cursor “ aus dem Verzeichnis „ stream “.
Siehe auch „Serialisierung vonQt-Datentypen“.
© 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.

















