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 |
- Liste aller Mitglieder, einschließlich vererbter Mitglieder
- Veraltete Mitglieder
- QCursor ist Teil von Implicitly Shared Classes.
Ö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) |
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) |
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.
Form | Qt::CursorShape Wert | Cursor-Name | Form | Qt::CursorShape Wert | Name des Cursors |
---|---|---|---|---|---|
![]() | 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 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.