QCursor Class

QCursorクラスは、任意の形状のマウスカーソルを提供します。詳細...

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

パブリック関数

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)

静的パブリックメンバー

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)

詳細な説明

このクラスは主に、特定のウィジェットに関連付けられたマウスカーソルを作成したり、マウスカーソルの位置を取得したり設定したりするために使用されます。

Qtには標準的なカーソル形状がいくつかありますが、QBitmap 、マスク、ホットスポットに基づいたカスタムカーソル形状を作成することもできます。

カーソルをウィジェットに関連付けるには、QWidget::setCursor() を使用します。すべてのウィジェットにカーソルを関連付けるには、QGuiApplication::setOverrideCursor()を使用します。

カーソルの形状を設定するには、QCursor::setShape()を使用するか、形状を引数に取るQCursorコンストラクタを使用するか、Qt::CursorShape enumで定義された定義済みカーソルのいずれかを使用します。

独自のビットマップでカーソルを作成したい場合は、ビットマップとマスクを引数に取るQCursorコンストラクタか、pixmapを引数に取るコンストラクタを使用してください。

マウス・カーソルの位置を設定または取得するには、スタティック・メソッドQCursor::pos() およびQCursor::setPos() を使用します。

注: QGuiApplication の前に QCursor を作成することは可能ですが、QGuiApplication の後に作成される実際の QCursor のプレースホルダとして以外は役に立ちません。QGuiApplication より前に作成された QCursor を使用しようとするとクラッシュします。

X11 ユーザーへの注意

X11 では、Qt はフルカラーのアイコンテーマを使用できるXcursorライブラリをサポートしています。以下の表は、Qt::CursorShape の値ごとに使用されるカーソル名を示しています。もしカーソルが以下の名前を使って見つからない場合、代わりに標準のX11カーソルが使われます。注意: X11は、Qt::CursorShape のすべての値に対して適切なカーソルを提供しているわけではありません。いくつかのカーソルはXcursorテーマから取得され、他のカーソルは内部ビットマップカーソルを使用する可能性があります。

形状Qt::CursorShapeカーソル名形状Qt::CursorShape カーソル名カーソル名
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 またはmoveQt::DragCopyCursordnd-copy またはcopy
Qt::DragLinkCursordnd-link またはlink

QWidgetも参照

メンバ関数ドキュメント

QCursor::QCursor()

デフォルトの矢印形状のカーソルを構築する。

QCursor::QCursor(Qt::CursorShape shape)

指定されたshape でカーソルを構築する。

図形の一覧はQt::CursorShape を参照のこと。

setShape()も参照してください

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

カスタムピクスマップカーソルを構築する。

pixmap は画像である。マスク( ()で設定)を与えるのが一般的である。 と は、カーソルのホットスポットを定義する。QPixmap::setMask hotX hotY

hotX が負の場合、それはpixmap().width()/2 に設定される。hotY が負の場合、それはpixmap().height()/2 に設定される。

有効なカーソルサイズは、ディスプレイのハードウェア(または基本的なウィンドウシステム)に依存します。このサイズはすべてのプラットフォームでサポートされているので、32 x 32カーソルを使用することを推奨する。いくつかのプラットフォームでは、16 x 16、48 x 48、64 x 64カーソルもサポートしています。

QPixmap::QPixmap() およびQPixmap::setMask()も参照のこと

QCursor::QCursor(const QBitmap &bitmap, const QBitmap &mask, int hotX = -1, int hotY = -1)

カスタムビットマップカーソルを構築する。

bitmap mask hotX と はカーソルのホットスポットを定義します。hotY

hotX が負の場合、それはbitmap().width()/2 に設定される。hotY が負の場合、それはbitmap().height()/2 に設定される。

カーソルのbitmap (B) とmask (M)ビットはこのように組み合わされる:

  • B=1、M=1で黒。
  • B=0、M=1で白。
  • B=0、M=0 で透明。
  • B=1 と M=0 は、Windows では XOR された結果となり、その他のプラットフォームでは未定義の結果となります。

ビットマップに0ピクセルを描画するにはQtのグローバルカラーQt::color0 、1ピクセルを描画するにはQt::color1

有効なカーソルのサイズは、ディスプレイのハードウェア(または基本的なウィンドウシステム)に依存します。このサイズはすべてのプラットフォームでサポートされているため、32 x 32カーソルを使用することをお勧めします。いくつかのプラットフォームでは、16 x 16、48 x 48、64 x 64カーソルもサポートしています。

QBitmap::QBitmap() およびQBitmap::setMask()も参照のこと

QCursor::QCursor(const QCursor &c)

カーソルのコピーを作成するc

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

移動-カーソルをother から構築する。移動元から移動された後、other に対する有効な操作は破棄と(移動とコピー)代入のみである。移動元のインスタンスに対して他のメンバ関数を呼び出しても、その効果は未定義である。

[noexcept] QCursor::~QCursor()

カーソルを破壊する。

QBitmap QCursor::bitmap() const

カーソルのビットマップ、または標準カーソルの場合はNULLビットマップを返す。

QPoint QCursor::hotSpot() const

カーソルのホットスポットを返し、標準カーソルの場合は(0, 0)を返す。

QBitmap QCursor::mask() const

カーソルのビットマップマスク、または標準カーソルの場合はNULLビットマップを返す。

QPixmap QCursor::pixmap() const

カーソルの pixmap を返す。カーソルがpixmapカーソルの場合のみ有効です。

[static] QPoint QCursor::pos()

プライマリ画面のカーソル(ホットスポット)の位置をグローバルスクリーン座標で返す。

ウィジェット座標に変換するには、QWidget::mapFromGlobal()を呼び出します。

注意: 位置はウィンドウシステムから取得されます。他の手段(例えば、ユニットテスト内のQWindowSystemInterface)でマウスイベントが生成された場合、それらの偽のマウス移動は戻り値に反映されません。

注意: ウィンドウ・システムがないプラットフォームやカーソルが利用できないプラットフォームでは、返される位置はQWindowSystemInterfaceを介して生成されたマウス移動イベントに基づいています。

setPos(),QWidget::mapFromGlobal(),QWidget::mapToGlobal(),QGuiApplication::primaryScreen()も参照してください

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

screen のカーソル(ホットスポット)の位置をグローバルスクリーン座標で返す。

ウィジェット座標に変換するにはQWidget::mapFromGlobal() を呼び出します。

setPos()、QWidget::mapFromGlobal()、QWidget::mapToGlobal()も参照してください

[static] void QCursor::setPos(int x, int y)

プライマリ画面のカーソル(ホットスポット)をグローバル画面の位置(x,y )に移動する。

QWidget::mapToGlobal() を呼び出すと、ウィジェットの座標をグローバル・スクリーン座標に変換できる。

pos(),QWidget::mapFromGlobal(),QWidget::mapToGlobal(),QGuiApplication::primaryScreen()も参照のこと

[static] void QCursor::setPos(QScreen *screen, int x, int y)

screen のカーソル(ホットスポット)をグローバル・スクリーン位置 (x,y) に移動する。

QWidget::mapToGlobal() を呼び出すことで、ウィジェットの座標をグローバル・スクリーン座標に変換することができる。

注意: この関数を呼び出すと、ウィンドウ・システムを通じてカーソル位置が変更されます。ウィンドウ・システムは通常、マウス・イベントをアプリケーションのウィンドウに送信することで応答します。つまり、ユニットテストや、QWindowSystemInterfaceを介して偽のマウスイベントが注入されるあらゆる場所で、この関数の使用は避けるべきです。

注意: ウィンドウシステムがないプラットフォームやカーソルが利用できないプラットフォームでは、この関数は何もしないかもしれません。

pos()、QWidget::mapFromGlobal()、QWidget::mapToGlobal()も参照のこと

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

これはオーバーロードされた関数である。

カーソル(ホットスポット)をグローバルスクリーン位置の点p に移動する。

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

これはオーバーロードされた関数である。

カーソル(ホットスポット)を、screen のグローバル画面位置p に移動します。

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

カーソルをshape で指定された形状に設定する。

カーソル形状のリストはQt::CursorShape を参照のこと。

shape()も参照のこと

Qt::CursorShape QCursor::shape() const

カーソル形状識別子を返す。

setShape()も参照

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

このカーソルをother と交換する。この操作は非常に高速で、失敗することはない。

QVariant QCursor::operator QVariant() const

カーソルをQVariant として返す。

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

Move-other をこのQCursor インスタンスに割り当てる。

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

このカーソルにc を割り当て、このカーソルへの参照を返す。

関連する非会員

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

不等式演算子。!(lhs ==rhs) と等価な値を返します。

operator==(const QCursor &lhs, const QCursor &rhs)も参照してください

QDataStream &operator<<(QDataStream &stream, const QCursor &cursor)

streamcursor を書き込みます。

Qt データ型のシリアライズも参照してください

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

等号演算子。lhsrhsshape() が同じで、bitmap cursors の場合はhotSpot() が同じで、pixmap() が同じか、bitmap() とmask() が同じであればtrue を返す。

注意: ビットマップカーソルを比較する場合、この関数は各ピクセルではなく、ビットマップのcache keys だけを比較します。

operator!=(const QCursor &lhs, const QCursor &rhs)も参照してください

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

stream からcursor を読み込みます。

Qt データ型のシリアライズも参照してください

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