QCursor Class

QCursor 클래스는 임의의 모양을 가진 마우스 커서를 제공합니다. 더 보기...

Header: #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 열거형에 정의된 미리 정의된 커서 중 하나를 사용할 수 있습니다.

자체 비트맵으로 커서를 만들려면 비트맵과 마스크를 인자로 받는 QCursor 생성자 또는 픽셀맵을 인자로 받는 생성자를 사용합니다.

마우스 커서의 위치를 설정하거나 가져오려면 정적 메서드 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()를 사용하여 설정). hotXhotY 은 커서의 핫스팟을 정의합니다.

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)

사용자 정의 비트맵 커서를 생성합니다.

bitmapmask 는 비트맵을 구성합니다. hotXhotY 는 커서의 핫스팟을 정의합니다.

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'd 결과를, 다른 모든 플랫폼에서는 정의되지 않은 결과를 제공합니다.

비트맵에 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

커서 비트맵을 반환하거나 표준 커서 중 하나인 경우 널 비트맵을 반환합니다.

QPoint QCursor::hotSpot() const

커서 핫스팟을 반환하거나 표준 커서 중 하나인 경우 (0, 0)을 반환합니다.

QBitmap QCursor::mask() const

커서 비트맵 마스크를 반환하거나, 표준 커서 중 하나인 경우 널 비트맵을 반환합니다.

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 로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.

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

cursorstream 에 씁니다.

Qt 데이터 유형 직렬화도참조하십시오 .

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

등호 연산자. lhsrhs 이 동일한 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 데이터 유형 직렬화도참조하십시오 .

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