Класс QCursor
Класс QCursor предоставляет курсор мыши с произвольной формой. Подробнее...
| Заголовок: | #include <QCursor> |
| qmake: | QT += gui |
Открытые функции
| QCursor() | |
| QCursor(Qt::CursorShape shape) | |
| QCursor(const QBitmap &bitmap, const QBitmap &mask, int hotX = -1, int hotY = -1) | |
| QCursor(const QPixmap &pixmap, int hotX = -1, int hotY = -1) | |
| QCursor(const QCursor &c) | |
| QCursor(QCursor &&other) | |
| ~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) |
| operator QVariant() const | |
| QCursor & | operator=(const QCursor &c) |
| QCursor & | operator=(QCursor &&other) |
Статические открытые члены
| 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) |
Связанные нечлены
| QDataStream & | operator<<(QDataStream &stream, const QCursor &cursor) |
| QDataStream & | operator>>(QDataStream &stream, QCursor &cursor) |
Подробное описание
Класс QCursor предоставляет курсор мыши с произвольной формой.
Этот класс в основном используется для создания курсоров мыши, связанных с определенными виджетами, и для получения и установки положения курсора мыши.
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::QCursor(Qt::CursorShape shape)
Создаёт курсор с указанной формой.
Список форм см. в Qt::CursorShape.
См. также setShape().
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, неопределённый результат на всех других платформах.
Для рисования 0-пикселей используйте глобальный цвет Qt Qt::color0, а для 1-пикселей — Qt::color1.
Допустимые размеры курсора зависят от аппаратного обеспечения дисплея (или подлежащей системе окон). Рекомендуется использовать курсоры размером 32x32, так как этот размер поддерживается на всех платформах. Некоторые платформы также поддерживают курсоры размером 16x16, 48x48 и 64x64.
См. также QBitmap::QBitmap() и QBitmap::setMask().
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 QCursor &c)
Создаёт копию курсора c.
QCursor::QCursor(QCursor &&other)
Перемещает курсор из other. После перемещения над other допустимы только операции уничтожения и (перемещения и копирования) присваивания. Эффекты вызова любой другой функции-члена над перемещённым экземпляром неопределённы.
Данная функция была добавлена в Qt 5.5.
QCursor::~QCursor()
Уничтожает курсор.
const QBitmap *QCursor::bitmap() const
Возвращает растровое изображение курсора или 0, если это один из стандартных курсоров.
QPoint QCursor::hotSpot() const
Возвращает точку привязки курсора или (0, 0), если это один из стандартных курсоров.
const QBitmap *QCursor::mask() const
Возвращает маску растрового изображения курсора или 0, если это один из стандартных курсоров.
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 (преобразовано к типу int).
См. также setShape().
void QCursor::swap(QCursor &other)
QCursor::operator QVariant() const
Возвращает курсор как QVariant.
QCursor &QCursor::operator=(const QCursor &c)
Присваивает c этому курсору и возвращает ссылку на этот курсор.
QCursor &QCursor::operator=(QCursor &&other)
Перемещает присваивание other этому экземпляру QCursor.
Данная функция была добавлена в Qt 5.2.
Связанные нечлены
QDataStream &operator<<(QDataStream &stream, const QCursor &cursor)
Записывает cursor в stream.
См. также Сериализация типов данных Qt.
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-5.9/qcursor.html