Spec-Zone.ru › Qt 5.12

Класс 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)
QVariant 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)

Связанные внешние члены

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)

Подробное описание

Класс 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)

Создаёт курсор с указанной формой 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.

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

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

QVariant QCursor::operator QVariant() const

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

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

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

QCursor &QCursor::operator=(QCursor &&other)

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

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

END_OF_DOCUMENT_MARKER

Связанные не члены

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.

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-5.12/qcursor.html

Spec-Zone.ru

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