Spec-Zone.ru › Qt 5.9

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

Spec-Zone.ru

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