QCursor Class

Die Klasse QCursor stellt einen Mauszeiger mit beliebiger Form zur Verfügung. Mehr...

Kopfzeile: #include <QCursor>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

Ö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)
QVariant 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)
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)

Detaillierte Beschreibung

Diese Klasse wird hauptsächlich verwendet, um Mauscursor zu erstellen, die mit bestimmten Widgets verbunden sind, und um die Position des Mauscursors zu ermitteln und zu setzen.

Qt verfügt über eine Reihe von Standard-Cursor-Formen, aber Sie können auch benutzerdefinierte Cursor-Formen erstellen, die auf einer QBitmap, einer Maske und einem Hotspot basieren.

Um einen Cursor mit einem Widget zu verknüpfen, verwenden Sie QWidget::setCursor(). Um einen Cursor mit allen Widgets zu verknüpfen (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 annimmt, oder Sie können einen der vordefinierten Cursor verwenden, die im Qt::CursorShape enum definiert sind.

Wenn Sie einen Cursor mit einer eigenen Bitmap erstellen wollen, verwenden Sie entweder den QCursor-Konstruktor, der eine Bitmap und eine Maske annimmt, oder den Konstruktor, der eine Pixmap als Argument annimmt.

Um die Position des Mauszeigers zu setzen oder zu erhalten, verwenden Sie die statischen Methoden QCursor::pos() und QCursor::setPos().

Hinweis: Es ist möglich, einen QCursor vor QGuiApplication zu erstellen, aber er ist nicht nützlich, außer als Platzhalter für einen echten QCursor, der nach QGuiApplication erstellt wurde. Der Versuch, einen QCursor zu verwenden, der vor 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-Themen ermöglicht. Die folgende Tabelle zeigt den Cursornamen, der für jeden Qt::CursorShape Wert verwendet wird. Wenn ein Cursor nicht mit dem unten gezeigten Namen gefunden werden kann, wird stattdessen ein Standard-X11-Cursor verwendet. Hinweis: X11 stellt nicht für alle möglichen Qt::CursorShape Werte geeignete Cursor zur Verfügung. Es ist möglich, dass einige Cursor aus dem Xcursor-Thema übernommen werden, während andere einen internen Bitmap-Cursor verwenden.

FormQt::CursorShape WertCursor-NameFormQt::CursorShape WertName des Cursors
Qt::ArrowCursorleft_ptrQt::SizeVerCursorsize_ver
Qt::UpArrowCursorup_arrowQt::SizeHorCursorsize_hor
Qt::CrossCursorcrossQt::SizeBDiagCursorsize_bdiag
Qt::IBeamCursoribeamQt::SizeFDiagCursorsize_fdiag
Qt::WaitCursorwaitQt::SizeAllCursorsize_all
Qt::BusyCursorleft_ptr_watchQt::SplitVCursorsplit_v
Qt::ForbiddenCursorforbiddenQt::SplitHCursorsplit_h
Qt::PointingHandCursorpointing_handQt::OpenHandCursoropenhand
Qt::WhatsThisCursorwhats_thisQt::ClosedHandCursorclosedhand
Qt::DragMoveCursordnd-move oder moveQt::DragCopyCursordnd-copy oder copy
Qt::DragLinkCursordnd-link oder link

Siehe auch QWidget.

Dokumentation der Mitgliedsfunktionen

QCursor::QCursor()

Konstruiert einen Cursor mit der Standard-Pfeilform.

QCursor::QCursor(Qt::CursorShape shape)

Konstruiert einen Cursor mit der angegebenen shape.

Siehe Qt::CursorShape für eine Liste von Formen.

Siehe auch setShape().

[explicit] QCursor::QCursor(const QPixmap &pixmap, int hotX = -1, int hotY = -1)

Konstruiert einen benutzerdefinierten Pixmap-Cursor.

pixmap ist das Bild. Es ist üblich, ihm eine Maske zu geben (festgelegt mit QPixmap::setMask()). hotX und hotY definieren den Hotspot des Cursors.

Wenn hotX negativ ist, wird er auf pixmap().width()/2 gesetzt. Wenn hotY negativ ist, 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 Cursors, da diese Größe von 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)

Konstruiert einen benutzerdefinierten Bitmap-Cursor.

bitmap und mask bilden die Bitmap. hotX und hotY definieren den Hotspot des Cursors.

Wenn hotX negativ ist, wird es auf bitmap().width()/2 gesetzt. Wenn hotY negativ ist, wird es auf bitmap().height()/2 gesetzt.

Die Bits des Cursors bitmap (B) und mask (M) werden wie folgt kombiniert:

  • B=1 und M=1 ergibt Schwarz.
  • B=0 und M=1 ergibt weiß.
  • B=0 und M=0 ergibt transparent.
  • B=1 und M=0 ergibt ein XOR-Ergebnis unter Windows, undefinierte Ergebnisse auf allen anderen Plattformen.

Verwenden Sie die globale Qt-Farbe Qt::color0 zum Zeichnen von 0-Pixeln und Qt::color1 zum Zeichnen von 1-Pixeln in den Bitmaps.

Gültige Cursorgrößen hängen von der Display-Hardware (oder dem zugrunde liegenden Fenstersystem) ab. Wir empfehlen die Verwendung von 32 x 32 Cursors, 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)

Konstruiert eine Kopie des Cursors c.

[noexcept] QCursor::QCursor(QCursor &&other)

Verschieben-konstruiert einen Cursor aus other. Nach dem Verschieben von sind die einzigen gültigen Operationen auf other die Zerstörung und die Zuweisung (Verschieben und Kopieren). Die Auswirkungen des Aufrufs einer anderen Mitgliedsfunktion auf eine verschobene Instanz sind undefiniert.

[noexcept] QCursor::~QCursor()

Zerstört den Cursor.

QBitmap QCursor::bitmap() const

Gibt die Bitmap des Cursors zurück, oder eine Null-Bitmap, wenn es sich um einen der Standardcursor handelt.

QPoint QCursor::hotSpot() const

Gibt den Hotspot des Cursors zurück, oder (0, 0), wenn es sich um einen der Standardcursor handelt.

QBitmap QCursor::mask() const

Gibt die Bitmap-Maske des Cursors zurück, oder eine Null-Bitmap, wenn es sich um einen der Standardcursor handelt.

QPixmap QCursor::pixmap() const

Gibt das Pixmap des Cursors zurück. Dies ist nur gültig, wenn der Cursor ein Pixmap-Cursor ist.

[static] QPoint QCursor::pos()

Gibt die Position des Cursors (Hotspot) des Primärbildschirms in globalen Bildschirmkoordinaten zurück.

Sie können QWidget::mapFromGlobal() aufrufen, um sie in Widget-Koordinaten zu übersetzen.

Hinweis: Die Position wird vom Windowing-System abgefragt. Wenn Mausereignisse auf andere Weise erzeugt werden (z.B. über QWindowSystemInterface in einem Unit-Test), werden diese gefälschten Mausbewegungen nicht im zurückgegebenen Wert reflektiert.

Hinweis: Auf Plattformen, auf denen es kein Fenstersystem oder keine Cursor gibt, basiert die zurückgegebene Position auf den Mausbewegungsereignissen, die über QWindowSystemInterface erzeugt werden.

Siehe auch setPos(), QWidget::mapFromGlobal(), QWidget::mapToGlobal(), und QGuiApplication::primaryScreen().

[static] QPoint QCursor::pos(const QScreen *screen)

Gibt die Position des Cursors (Hotspot) von screen in globalen Bildschirmkoordinaten zurück.

Sie können QWidget::mapFromGlobal() aufrufen, um sie in Widget-Koordinaten zu übersetzen.

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 die Koordinaten des Widgets in globale Bildschirmkoordinaten zu übersetzen.

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 Widgets screen an die globale Bildschirmposition (x, y).

Sie können QWidget::mapToGlobal() aufrufen, um die Koordinaten des Widgets in globale Bildschirmkoordinaten zu übersetzen.

Hinweis: Der Aufruf dieser Funktion führt zu einer Änderung der Cursorposition durch das Windowing-System. Das Windowing-System reagiert in der Regel, indem es Mausereignisse an das Fenster der Anwendung sendet. Das bedeutet, dass die Verwendung dieser Funktion in Unit-Tests und überall dort, wo gefälschte Mausereignisse über QWindowSystemInterface eingespeist werden, vermieden werden sollte, da der Mauszustand des Windowing-Systems (z.B. in Bezug auf Schaltflächen) möglicherweise nicht mit dem Zustand in den von der Anwendung erzeugten Ereignissen übereinstimmt.

Hinweis: Auf Plattformen, auf denen es kein Windowing-System gibt oder Cursor nicht verfügbar sind, kann diese Funktion nichts bewirken.

Siehe auch pos(), QWidget::mapFromGlobal(), und QWidget::mapToGlobal().

[static] void QCursor::setPos(const QPoint &p)

Dies ist eine überladene Funktion.

Bewegt den Cursor (Hot Spot) an die globale Bildschirmposition an der Stelle p.

[static] void QCursor::setPos(QScreen *screen, const QPoint &p)

Dies ist eine überladene Funktion.

Bewegt den Cursor (Hot Spot) an die globale Bildschirmposition des screen an der Stelle p.

void QCursor::setShape(Qt::CursorShape shape)

Setzt den Cursor auf die durch shape identifizierte Form.

Siehe Qt::CursorShape für die Liste der Cursorformen.

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 mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.

QVariant QCursor::operator QVariant() const

Gibt den Cursor als QVariant zurück.

[noexcept] QCursor &QCursor::operator=(QCursor &&other)

Verschieben - weist other dieser QCursor Instanz zu.

QCursor &QCursor::operator=(const QCursor &c)

Weist diesem Cursor 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 von Qt-Datentypen.

[noexcept] bool operator==(const QCursor &lhs, const QCursor &rhs)

Gleichheitsoperator. Gibt true zurück, wenn lhs und rhs die gleiche shape() und, im Falle von bitmap cursors, die gleiche hotSpot() und entweder die gleiche pixmap() oder die gleiche bitmap() und mask() haben.

Hinweis: Beim Vergleich von Bitmap-Cursorn vergleicht diese Funktion nur die cache keys der Bitmaps, nicht jedes Pixel.

Siehe auch operator!=(const QCursor &lhs, const QCursor &rhs).

QDataStream &operator>>(QDataStream &stream, QCursor &cursor)

Liest die cursor aus der stream.

Siehe auch Serialisierung von Qt-Datentypen.

© 2025 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.