Класс 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 | 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.
Документация по типам членов
перечисление QWaylandSeat::CapabilityFlag QWaylandSeat::CapabilityFlags
Это перечисление описывает возможности QWaylandSeat.
| Константа | Значение | Описание |
|---|---|---|
QWaylandSeat::Pointer |
0x01 |
У QWaylandSeat поддерживается ввод указателем. |
QWaylandSeat::Keyboard |
0x02 |
У QWaylandSeat поддерживается ввод с клавиатуры. |
QWaylandSeat::Touch |
0x04 |
У QWaylandSeat поддерживается сенсорный ввод. |
QWaylandSeat::DefaultCapabilities |
Pointer | Keyboard | Touch |
У QWaylandSeat установлены стандартные возможности. |
Тип CapabilityFlags — это typedef для 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
Возвращает объект drag для этого 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
Возвращает представление, которое в настоящее время имеет фокус мыши.
См. также setMouseFocus().
QWaylandPointer *QWaylandSeat::pointer() const
Возвращает устройство указателя для этого QWaylandSeat.
void QWaylandSeat::sendFullKeyEvent(QKeyEvent *event)
Отправляет event устройству клавиатуры.
void QWaylandSeat::sendFullTouchEvent(QWaylandSurface *surface, QTouchEvent *event)
Отправляет event на указанную surface на сенсорном устройстве.
Предупреждение: Этот API автоматически сопоставит QEventPoint::id() с последовательным идентификатором перед отправкой клиенту. Поэтому его не следует использовать совместно с другими API, использующими явные идентификаторы, так как могут возникнуть коллизии.
[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.1/qwaylandseat.html