Spec-Zone.ru › Qt 6.1

Класс 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, а другие будут использовать внутреннюю битовую карту указателя.

Форма Значение 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 являются уничтожение и (перемещение и копирование) присваивание. Эффекты вызова любой другой функции члена над перемещенным экземпляром не определены.

Данная функция была добавлена в 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.

Биты курсора bitmap (B) и mask (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)

Создаёт курсор с указанной формой 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 в unit-тесте), эти имитационные перемещения мыши не будут отражены в возвращаемом значении.

Примечание: На платформах, где нет системы окон или курсоры недоступны, возвращаемое положение основано на событиях перемещения мыши, сгенерированных через 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

Возвращает идентификатор формы курсора. Возвращаемое значение — одно из значений перечисления Qt::CursorShape (приведено к типу int).

См. также 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 имеют одинаковую shape(), и в случае растровых курсоров, одинаковую hotSpot() и либо одинаковую 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.1/qcursor.html

Spec-Zone.ru

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