Класс QCursor
Класс QCursor предоставляет указатель мыши с произвольной формой. Подробнее...
| Заголовок: | #include <QCursor> |
| 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() | |
| const QBitmap * | bitmap() const |
| QPoint | hotSpot() const |
| 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 и Руководство по разработке графического интерфейса пользователя: Указатели мыши.
Документация функций-членов
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()
Создаёт курсор со стандартной стрелкой.
QCursor &QCursor::operator=(QCursor &&other)
Присваивает other этому экземпляру QCursor.
Эта функция была добавлена в Qt 5.2.
QCursor &QCursor::operator=(const QCursor &c)
Присваивает c этому курсору и возвращает ссылку на этот курсор.
QCursor::~QCursor()
Уничтожает курсор.
const QBitmap *QCursor::bitmap() const
Возвращает битовую карту курсора или nullptr , если это один из стандартных курсоров.
QPoint QCursor::hotSpot() const
Возвращает точку «горячей» области курсора или (0, 0), если это один из стандартных курсоров.
const QBitmap *QCursor::mask() const
Возвращает маску битовой карты курсора или nullptr , если это один из стандартных курсоров.
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
Возвращает идентификатор формы курсора. Возвращаемое значение — одно из значений перечисления Qt::CursorShape (преобразованное в целое число).
См. также setShape().
void QCursor::swap(QCursor &other)
Меняет местами этот курсор и курсор other.
QVariant QCursor::operator QVariant() const
Возвращает курсор как QVariant.
END_OF_DOCUMENT_MARKERСвязанные не члены
bool QCursor::operator!=(const QCursor &lhs, const QCursor &rhs)
Оператор неравенства. Возвращает эквивалент !(lhs == rhs).
Эта функция была добавлена в Qt 5.10.
См. также operator==(const QCursor &lhs, const QCursor &rhs).
QDataStream &QCursor::operator<<(QDataStream &stream, const QCursor &cursor)
Записывает cursor в stream.
См. также Сериализация типов данных Qt.
bool QCursor::operator==(const QCursor &lhs, const QCursor &rhs)
Оператор равенства. Возвращает true если lhs и rhs имеют одинаковую форму и, в случае курсоров с изображением, одинаковый hotSpot() и либо одинаковый pixmap(), либо одинаковый bitmap() и mask().
Примечание: При сравнении курсоров с изображением эта функция сравнивает только ключи кэширования растровых изображений, а не каждый пиксель.
Эта функция была добавлена в Qt 5.10.
См. также operator!=(const QCursor &lhs, const QCursor &rhs).
QDataStream &QCursor::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-5.13/qcursor.html