QCursor Class
QCursor クラスは、任意の形状のマウスカーソルを提供します。詳細...
| ヘッダー: | #include <QCursor> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- 継承されたメンバーを含む、すべてのメンバーの一覧
- 非推奨のメンバ
- QCursorは「暗黙的に共有されるクラス」の一部です。
パブリック関数
| 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) |
静的パブリックメンバー
| 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 列挙型で定義されている既定のカーソルのいずれかを使用することもできます。
独自のビットマップを使用してカーソルを作成する場合は、ビットマップとマスクを受け取る QCursor コンストラクタ、またはピクマップを引数として受け取るコンストラクタを使用してください。
マウスカーソルの位置を設定または取得するには、静的メソッド `QCursor::pos()` および `QCursor::setPos()` を使用します。
注: QGuiApplication の前に QCursor を作成することは可能ですが、QGuiApplication の後に作成される実際の QCursor のプレースホルダーとして以外には役に立ちません。QGuiApplication の前に作成された QCursor を使用しようとすると、クラッシュします。
X11ユーザーへの注意
X11 において、Qt はフルカラーのアイコンテーマを可能にするXcursorライブラリをサポートしています。以下の表は、各Qt::CursorShape 値に対して使用されるカーソル名を示しています。以下の名前でカーソルが見つからない場合、代わりに標準の X11 カーソルが使用されます。 注:X11では、Qt::CursorShape のすべての値に対して適切なカーソルが提供されているわけではありません。一部のカーソルはXcursorテーマから取得される一方、他のカーソルでは内部のビットマップカーソルが使用される場合があります。
| Shape | Qt::CursorShape 値 | カーソル名 | Shape | Qt::CursorShape 値 | カーソル名 |
|---|---|---|---|---|---|
![]() | 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 またはmove | Qt::DragCopyCursor | dnd-copy またはcopy | ||
| Qt::DragLinkCursor | dnd-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 × 32 のカーソルの使用を推奨します。一部のプラットフォームでは、16 × 16、48 × 48、および 64 × 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
カーソルのピクマップを返します。これは、カーソルがピクマップカーソルである場合にのみ有効です。
[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)
カーソル(ホットスポット)を、座標p にあるscreen のグローバル画面上の位置に移動します。
これはオーバーロードされた関数です。
void QCursor::setShape(Qt::CursorShape shape)
shape で指定された形状のカーソルに設定します。
カーソルの形状の一覧については、Qt::CursorShape を参照してください。
shape()も参照してください 。
Qt::CursorShape QCursor::shape() const
カーソルの形状識別子を返します。
setShape()も参照してください 。
[noexcept] void QCursor::swap(QCursor &other)
このカーソルを「other 」と入れ替えます。この操作は非常に高速で、失敗することはありません。
QCursor::operator QVariant() const
カーソルをQVariant として返します。
[noexcept] QCursor &QCursor::operator=(QCursor &&other)
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)
cursor をstream に書き込みます。
「Qt データ型のシリアル化」も参照してください 。
[noexcept] bool operator==(const QCursor &lhs, const QCursor &rhs)
等価演算子。lhs およびrhs のshape() が等しい場合、また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データ型のシリアライズ」も参照してください 。
© 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.

















