Spec-Zone.ru › Qt

Класс QCursor

Класс QCursor предоставляет курсор мыши с произвольной формой. Подробнее...

Заголовок: #include <QCursor>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Открытые функции

QCursor(QCursor &&other)
QCursor(const QCursor &c)
QCursor(const QPixmap &pixmap, int hotX = -1, int hotY = -1)
QCursor(const QBitmap &bitmap, const QBitmap &mask, int hotX = -1, int hotY = -1)
QCursor(Qt::CursorShape shape)
QCursor()
QCursor & operator=(QCursor &&other)
QCursor & operator=(const QCursor &c)
~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

Статические открытые члены

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().

Примечание: Возможно создать QCursor до QGuiApplication, но это бесполезно, кроме как в качестве заполнителя для реального QCursor, созданного после QGuiApplication. Попытка использовать QCursor, созданный до QGuiApplication, приведет к сбою.

Примечание для пользователей X11

В X11 Qt поддерживает библиотеку Xcursor, которая позволяет использовать полные цветные темы значков курсора. В таблице ниже показано имя курсора, используемое для каждого значения Qt::CursorShape. Если курсор не может быть найден с помощью указанного ниже имени, вместо него будет использован стандартный курсор X11. Примечание: X11 не предоставляет подходящие курсоры для всех возможных значений Qt::CursorShape. Возможно, некоторые курсоры будут взяты из темы Xcursor, а другие будут использовать внутренний курсор битового изображения.

END_OF_DOCUMENT_MARKER
Форма Qt::CursorShape Значение Имя курсора Форма 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 и Руководство по проектированию пользовательского интерфейса: Курсоры.

Документация по функциям-членам

[since 5.5] QCursor::QCursor(QCursor &&other)

Конструктор перемещения курсора из other. После перемещения из other единственные допустимые операции для other — уничтожение и (перемещение и копирование) присваивание. Результаты вызова любой другой функции-члена на переместившемся экземпляре не определены.

Эта функция была введена в Qt 5.5.

QCursor::QCursor(const QCursor &c)

Создаёт копию курсора c.

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

Создаёт пользовательский курсор из пиксельной карты.

pixmap — изображение. Обычно ему задаётся маска (используя QPixmap::setMask()). hotX и hotY определяют точку привязки курсора.

Если hotX отрицательно, он устанавливается в pixmap().width()/2. Если hotY отрицательно, он устанавливается в pixmap().height()/2.

Допустимые размеры курсора зависят от оборудования дисплея (или от используемой системы окон). Рекомендуется использовать курсоры размером 32x32, так как этот размер поддерживается на всех платформах. Некоторые платформы также поддерживают курсоры размером 16x16, 48x48 и 64x64.

См. также 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.

Биты курсовой битовой карты (B) и маски (M) комбинируются следующим образом:

  • B=1 и M=1 даёт чёрный цвет.
  • B=0 и M=1 даёт белый цвет.
  • B=0 и M=0 даёт прозрачность.
  • B=1 и M=0 даёт результат XOR под Windows, неопределённые результаты на всех остальных платформах.

Используйте глобальные цвета Qt Qt::color0 для рисования 0-пикселей и Qt::color1 для рисования 1-пикселей в битовых картах.

Допустимые размеры курсора зависят от оборудования дисплея (или от используемой системы окон). Рекомендуется использовать курсоры размером 32x32, так как этот размер поддерживается на всех платформах. Некоторые платформы также поддерживают курсоры размером 16x16, 48x48 и 64x64.

См. также QBitmap::QBitmap() и QBitmap::setMask().

QCursor::QCursor(Qt::CursorShape shape)

Создаёт курсор с заданной формой.

Список форм см. в Qt::CursorShape.

См. также setShape().

QCursor::QCursor()

Создаёт курсор с формой по умолчанию — стрелкой.

[since 5.2] QCursor &QCursor::operator=(QCursor &&other)

Перемещающее присваивание other текущему экземпляру QCursor.

Эта функция была введена в Qt 5.2.

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

Присваивает c текущему курсору и возвращает ссылку на этот курсор.

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)

Это перегруженный метод.

Перемещает курсор (горячую точку) в глобальные экранные координаты экрана screen в точке p.

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

Устанавливает форму курсора, идентифицируемую значением shape.

См. Qt::CursorShape для списка форм курсора.

См. также shape().

Qt::CursorShape QCursor::shape() const

Возвращает идентификатор формы курсора.

См. также setShape().

[since 5.7] void QCursor::swap(QCursor &other)

Меняет местами этот курсор с курсором other.

Эта функция была добавлена в Qt 5.7.

QVariant QCursor::operator QVariant() const

Возвращает курсор как QVariant.

Связанные нечлен-функции

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

Оператор неравенства. Возвращает эквивалент !(lhs == rhs).

Эта функция была добавлена в Qt 5.10.

См. также operator==(const QCursor &lhs, const QCursor &rhs).

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

Записывает cursor в stream.

См. также Сериализация типов данных Qt.

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

Оператор равенства. Возвращает true если lhs и rhs имеют одинаковую форму() и, в случае курсоров-растровых изображений, одинаковую горячую точку() и либо одинаковый pixmap(), либо одинаковый bitmap() и mask().

Примечание: При сравнении курсоров-растровых изображений эта функция сравнивает только ключи кэша растровых изображений, а не каждый пиксель.

Эта функция была добавлена в Qt 5.10.

См. также operator!=(const QCursor &lhs, const QCursor &rhs).

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

Читает cursor из stream.

См. также Сериализация типов данных Qt.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qcursor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API