Spec-Zone.ru › Qt 5.6

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

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

Примечание: В Windows CE размер курсора фиксирован. Если пиксель больше, чем системный размер, он будет масштабироваться.

См. также 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.

Примечание: В Windows CE размер курсора фиксирован. Если пиксельмапа больше, чем системный размер, она будет масштабироваться.

См. также 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().

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/archives/qt-5.6/qcursor.html

Spec-Zone.ru

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