이 페이지에서

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)
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 테마에서 가져오는 반면, 다른 커서는 내부 비트맵 커서를 사용할 수도 있습니다.

ShapeQt::CursorShape 값커서 이름모양Qt::CursorShape 값커서 이름
화살표 커서Qt::ArrowCursorleft_ptr수직 크기 조정 커서Qt::SizeVerCursorsize_ver
위쪽 화살표 커서Qt::UpArrowCursorup_arrow가로 크기 조정 커서Qt::SizeHorCursorsize_hor
십자 커서Qt::CrossCursorcross대각선 크기 조정 커서Qt::SizeBDiagCursorsize_bdiag
I자형 커서Qt::IBeamCursoribeam대각선 크기 조정 커서Qt::SizeFDiagCursorsize_fdiag
대기 커서Qt::WaitCursorwait커서 이동Qt::SizeAllCursorsize_all
바쁜 커서Qt::BusyCursorleft_ptr_watch수직 분할 커서Qt::SplitVCursorsplit_v
사용 금지 커서Qt::ForbiddenCursorforbidden가로로 나뉜 커서Qt::SplitHCursorsplit_h
손 모양 커서Qt::PointingHandCursorpointing_hand손바닥 모양 커서Qt::OpenHandCursoropenhand
이 커서는 뭐죠?Qt::WhatsThisCursorwhats_this주먹 모양 커서Qt::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

커서 픽스맵을 반환합니다. 이 함수는 커서가 픽스맵 커서인 경우에만 유효합니다.

[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()` 값을 가질 경우 ` true `를 반환하며, ` bitmap cursors`의 경우 ` hotSpot()` 값이 동일하고 ` pixmap()` 또는 ` bitmap()`와 ` mask()` 중 하나가 동일할 때 ` `를 반환합니다.

참고: 비트맵 커서를 비교할때 , 이 함수는 각 픽셀이 아닌 비트맵의 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.