Класс QWaylandSeat
Класс QWaylandSeat предоставляет доступ к вводу с клавиатуры, мыши и сенсорного экрана. Подробнее...
| Заголовок: | #include <QWaylandSeat> |
| CMake: | find_package(Qt6 COMPONENTS Waylandcompositor REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Waylandcompositor) |
| qmake: | QT += waylandcompositor |
| С момента: | Qt 5.8 |
| Инициализируется: | WaylandSeat |
| Наследует: | QWaylandObject |
Открытые типы
| перечисление | CapabilityFlag { Pointer, Keyboard, Touch, DefaultCapabilities } |
| флаги | CapabilityFlags |
Свойства
Открытые функции
| QWaylandSeat(QWaylandCompositor *compositor, QWaylandSeat::CapabilityFlags capabilityFlags = DefaultCapabilities) | |
| виртуальный | ~QWaylandSeat() override |
| QWaylandSeat::CapabilityFlags | capabilities() const |
| QWaylandCompositor * | compositor() const |
| QWaylandDrag * | drag() const |
| виртуальный void | initialize() |
| bool | isInitialized() const |
| QWaylandKeyboard * | keyboard() const |
| QWaylandSurface * | keyboardFocus() const |
| QWaylandKeymap * | keymap() |
| QWaylandView * | mouseFocus() const |
| QWaylandPointer * | pointer() const |
| void | sendFullKeyEvent(QKeyEvent *event) |
| void | sendFullTouchEvent(QWaylandSurface *surface, QTouchEvent *event) |
| void | sendKeyEvent(int qtKey, bool pressed) |
| void | sendKeyPressEvent(uint code) |
| void | sendKeyReleaseEvent(uint code) |
| void | sendMouseMoveEvent(QWaylandView *view, const QPointF &localPos, const QPointF &outputSpacePos = QPointF()) |
| void | sendMousePressEvent(Qt::MouseButton button) |
| void | sendMouseReleaseEvent(Qt::MouseButton button) |
| void | sendMouseWheelEvent(Qt::Orientation orientation, int delta) |
| void | sendTouchCancelEvent(QWaylandClient *client) |
| void | sendTouchFrameEvent(QWaylandClient *client) |
| uint | sendTouchPointEvent(QWaylandSurface *surface, int id, const QPointF &point, Qt::TouchPointState state) |
| uint | sendTouchPointMoved(QWaylandSurface *surface, int id, const QPointF &position) |
| uint | sendTouchPointPressed(QWaylandSurface *surface, int id, const QPointF &position) |
| uint | sendTouchPointReleased(QWaylandSurface *surface, int id, const QPointF &position) |
| bool | setKeyboardFocus(QWaylandSurface *surface) |
| void | setMouseFocus(QWaylandView *view) |
| QWaylandTouch * | touch() const |
Сигналы
| void | cursorSurfaceRequest(QWaylandSurface *surface, int hotspotX, int hotspotY) |
| void | keyboardFocusChanged(QWaylandSurface *newFocus, QWaylandSurface *oldFocus) |
| void | mouseFocusChanged(QWaylandView *newFocus, QWaylandView *oldFocus) |
Статические публичные члены
| QWaylandSeat * | fromSeatResource(struct ::wl_resource *resource) |
Подробное описание
QWaylandSeat предоставляет доступ к различным типам пользовательского ввода и поддерживает фокус клавиатуры и указатель мыши. Он соответствует интерфейсу wl_seat в протоколе Wayland.
Документация типов членов
enum QWaylandSeat::CapabilityFlagflags QWaylandSeat::CapabilityFlags
Этот перечислимый тип описывает возможности QWaylandSeat.
| Константа | Значение | Описание |
|---|---|---|
QWaylandSeat::Pointer |
0x01 |
У QWaylandSeat поддерживается ввод указателя. |
QWaylandSeat::Keyboard |
0x02 |
У QWaylandSeat поддерживается ввод с клавиатуры. |
QWaylandSeat::Touch |
0x04 |
У QWaylandSeat поддерживается сенсорный ввод. |
QWaylandSeat::DefaultCapabilities |
Pointer | Keyboard | Touch |
У QWaylandSeat есть стандартные возможности. |
Тип CapabilityFlags является псевдонимом для QFlags<CapabilityFlag>. Он хранит результат побитового ИЛИ объединения значений CapabilityFlag.
Документация свойств
[read-only] drag : QWaylandDrag* const
Это свойство хранит операции перетаскивания и отправляет сигналы при их начале и завершении. Свойство хранит подробности, например, какой образ должен находиться под курсором мыши при перетаскивании.
Функции доступа:
| QWaylandDrag * | drag() const |
[read-only] keymap : QWaylandKeymap* const
Это свойство хранит объект keymap.
Keymap предоставляет способ перевода фактических кодов сканирования клавиш в осмысленное значение. Например, если вы используете keymap с норвежской раскладкой, клавиша справа от буквы L создает символ Ø.
Keymap также можно использовать для настройки функций клавиш, например, для указания, должны ли быть переставлены Control и CAPS lock, и так далее.
Функции доступа:
| QWaylandKeymap * | keymap() |
Документация функций-членов
QWaylandSeat::QWaylandSeat(QWaylandCompositor *compositor, QWaylandSeat::CapabilityFlags capabilityFlags = DefaultCapabilities)
Создает QWaylandSeat для заданного compositor и capabilityFlags.
[signal] void QWaylandSeat::cursorSurfaceRequest(QWaylandSurface *surface, int hotspotX, int hotspotY)
Этот сигнал испускается, когда клиент запросил, чтобы определённая surface стала курсором мыши. Например, когда пользователь наводит указатель мыши на определённую surface, и вы хотите, чтобы курсор изменился на стрелку изменения размера.
И hotspotX, и hotspotY — смещения от верхнего левого угла поверхности указателя, где должен произойти щелчок. Например, если запрошенная поверхность курсора — стрелка, эти параметры указывают, где находится наконечник стрелки на этой поверхности.
[signal] void QWaylandSeat::keyboardFocusChanged(QWaylandSurface *newFocus, QWaylandSurface *oldFocus)
Этот сигнал испускается, когда вызывается setKeyboardFocus().
newFocus содержит surface, получившую фокус клавиатуры; или nullptr если ни одна surface не имеет фокуса. oldFocus содержит surface, потерявшую фокус клавиатуры; или nullptr если ни одна surface не имела фокуса.
[signal] void QWaylandSeat::mouseFocusChanged(QWaylandView *newFocus, QWaylandView *oldFocus)
Этот сигнал испускается при изменении фокуса мыши с oldFocus на newFocus.
[override virtual] QWaylandSeat::~QWaylandSeat()
Уничтожает QWaylandSeat
QWaylandSeat::CapabilityFlags QWaylandSeat::capabilities() const
Возвращает флаги возможностей для этого QWaylandSeat.
QWaylandCompositor *QWaylandSeat::compositor() const
Возвращает компоновщик для этого QWaylandSeat.
QWaylandDrag *QWaylandSeat::drag() const
Возвращает объект перетаскивания для этого QWaylandSeat.
Примечание: Функция-геттер для свойства drag.
[static] QWaylandSeat *QWaylandSeat::fromSeatResource(struct ::wl_resource *resource)
Возвращает QWaylandSeat, соответствующий resource. Ожидается, что resource имеет тип wl_seat.
[virtual] void QWaylandSeat::initialize()
Инициализирует части сиденья, соответствующие возможностям, установленным в конструкторе или через setCapabilities().
Примечание: Обычно эта функция вызывается автоматически после создания сиденья и компоновщика, поэтому вызов её вручную обычно не требуется.
bool QWaylandSeat::isInitialized() const
Возвращает true, если QWaylandSeat инициализирован; в противном случае — false.
Значение true указывает, что клиенты теперь могут начать использовать сиденье.
QWaylandKeyboard *QWaylandSeat::keyboard() const
Возвращает клавиатуру для этого устройства ввода.
QWaylandSurface *QWaylandSeat::keyboardFocus() const
Возвращает текущую сфокусированную surface для ввода с клавиатуры.
См. также setKeyboardFocus().
QWaylandKeymap *QWaylandSeat::keymap()
Возвращает объект keymap для этого QWaylandSeat.
Примечание: Функция-геттер для свойства keymap.
QWaylandView *QWaylandSeat::mouseFocus() const
Возвращает view, который в настоящее время имеет фокус мыши.
См. также setMouseFocus().
QWaylandPointer *QWaylandSeat::pointer() const
Возвращает устройство указателя для этого QWaylandSeat.
void QWaylandSeat::sendFullKeyEvent(QKeyEvent *event)
Отправляет event устройству клавиатуры.
void QWaylandSeat::sendFullTouchEvent(QWaylandSurface *surface, QTouchEvent *event)
Отправляет event на указанную surface на сенсорном устройстве.
Предупреждение: Этот API автоматически сопоставит QEventPoint::id() с последовательным id перед отправкой клиенту. Поэтому его не следует использовать совместно с другими API, использующими явные id, так как могут возникнуть коллизии.
[invokable, since 5.12] void QWaylandSeat::sendKeyEvent(int qtKey, bool pressed)
Отправляет событие нажатия клавиши (если pressed — true) или отпуска клавиши (если pressed — false) клавиши qtKey на устройство клавиатуры.
Примечание: Эта функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
Эта функция была добавлена в Qt 5.12.
void QWaylandSeat::sendKeyPressEvent(uint code)
Отправляет событие нажатия клавиши с кодом code на устройство клавиатуры.
void QWaylandSeat::sendKeyReleaseEvent(uint code)
Отправляет событие отпуска клавиши с кодом code на устройство клавиатуры.
void QWaylandSeat::sendMouseMoveEvent(QWaylandView *view, const QPointF &localPos, const QPointF &outputSpacePos = QPointF())
Устанавливает фокус мыши на view и отправляет событие перемещения мыши на устройство указателя с локальным положением localPos и положением в пространстве вывода outputSpacePos.
void QWaylandSeat::sendMousePressEvent(Qt::MouseButton button)
Отправляет событие нажатия кнопки мыши button на устройство указателя QWaylandSeat.
void QWaylandSeat::sendMouseReleaseEvent(Qt::MouseButton button)
Отправляет событие отпускания кнопки мыши button на устройство указателя QWaylandSeat.
void QWaylandSeat::sendMouseWheelEvent(Qt::Orientation orientation, int delta)
Отправляет событие колеса мыши на устройство указателя QWaylandSeat с заданным orientation и delta.
[invokable] void QWaylandSeat::sendTouchCancelEvent(QWaylandClient *client)
Отправляет событие отмены на сенсорное устройство client.
Примечание: Эта функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] void QWaylandSeat::sendTouchFrameEvent(QWaylandClient *client)
Отправляет событие кадра для сенсорного устройства клиента, чтобы указать конец серии событий касания: поднятия, нажатия и перемещения.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
uint QWaylandSeat::sendTouchPointEvent(QWaylandSurface *surface, int id, const QPointF &point, Qt::TouchPointState state)
Отправляет событие касания для точки на поверхности surface с заданным id, point и state.
Предупреждение: Этот API не следует использовать в сочетании с пересылкой событий касания с помощью QWaylandQuickItem::touchEventsEnabled или sendFullTouchEvent, так как это может привести к конфликту идентификаторов касаний.
Возвращает серийный номер для события поднятия или нажатия касания.
[invokable] uint QWaylandSeat::sendTouchPointMoved(QWaylandSurface *surface, int id, const QPointF &position)
Отправляет событие перемещения точки касания с id по поверхности surface с позицией position.
Примечание: Необходимо отправить событие кадра касания, когда отправка событий касания завершена.
Предупреждение: Этот API не следует использовать в сочетании с пересылкой событий касания с помощью QWaylandQuickItem::touchEventsEnabled или sendFullTouchEvent, так как это может привести к конфликту идентификаторов касаний.
Возвращает серийный номер для события перемещения касания.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] uint QWaylandSeat::sendTouchPointPressed(QWaylandSurface *surface, int id, const QPointF &position)
Отправляет событие нажатия точки касания с id по поверхности surface с позицией position.
Примечание: Необходимо отправить событие кадра касания, когда отправка событий касания завершена.
Предупреждение: Этот API не следует использовать в сочетании с пересылкой событий касания с помощью QWaylandQuickItem::touchEventsEnabled или sendFullTouchEvent, так как это может привести к конфликту идентификаторов касаний.
Возвращает серийный номер для события нажатия касания.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] uint QWaylandSeat::sendTouchPointReleased(QWaylandSurface *surface, int id, const QPointF &position)
Отправляет событие отпускания точки касания с id по поверхности surface с позицией position.
Примечание: Необходимо отправить событие кадра касания, когда отправка событий касания завершена.
Предупреждение: Этот API не следует использовать в сочетании с пересылкой событий касания с помощью QWaylandQuickItem::touchEventsEnabled или sendFullTouchEvent, так как это может привести к конфликту идентификаторов касаний.
Возвращает серийный номер для события отпускания касания.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
bool QWaylandSeat::setKeyboardFocus(QWaylandSurface *surface)
Устанавливает текущий фокус клавиатуры на surface. Возвращает булево значение, указывающее, был ли успешно выполнен операция.
См. также keyboardFocus().
void QWaylandSeat::setMouseFocus(QWaylandView *view)
Устанавливает текущий фокус мыши на view.
См. также mouseFocus().
QWaylandTouch *QWaylandSeat::touch() const
Возвращает устройство касания для этого QWaylandSeat.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qwaylandseat.html