Класс QWaylandSeat
Класс QWaylandSeat предоставляет доступ к вводу с клавиатуры, мыши и сенсорного экрана. Подробнее...
| Заголовок: | #include <QWaylandSeat> |
| CMake: | find_package(Qt6 COMPONENTS Waylandcompositor REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Waylandcompositor) |
| qmake: | QT += waylandcompositor |
| С версии: | Qt 5.8 |
| Наследует: | 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 стала курсором мыши. Например, когда пользователь наводит указатель на определённую поверхность, и вы хотите, чтобы курсор изменился на стрелку изменения размера.
hotspotX и hotspotY — смещения от верхнего левого угла поверхности указателя, где должен произойти клик. Например, если запрошенная поверхность курсора — стрелка, эти параметры указывают, где находится кончик стрелки на этой поверхности.
[signal] void QWaylandSeat::keyboardFocusChanged(QWaylandSurface *newFocus, QWaylandSurface *oldFocus)
Этот сигнал испускается, когда вызывается setKeyboardFocus().
newFocus содержит поверхность, получившую фокус клавиатуры; или nullptr если ни одна поверхность не имеет фокуса. oldFocus содержит поверхность, потерявшую фокус клавиатуры; или nullptr если ни одна поверхность не имела фокуса.
[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
Возвращает текущую поверхность, имеющую фокус для ввода с клавиатуры.
См. также 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, использующими явные идентификаторы, так как могут возникнуть коллизии.
[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.
void QWaylandSeat::sendTouchCancelEvent(QWaylandClient *client)
Отправляет событие отмены на сенсорное устройство указанного client.
Примечание: К этой функции можно обратиться через систему метаобъектов и из QML. См. Q_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, так как это может привести к конфликту идентификаторов касания.
Возвращает серийный номер для события отпускания или нажатия касания.
uint QWaylandSeat::sendTouchPointMoved(QWaylandSurface *surface, int id, const QPointF &position)
Отправляет событие перемещения точки касания с id на surface с позицией position.
Примечание: Необходимо отправить событие кадра касания, когда вы закончите отправку событий касания.
Предупреждение: Этот API не следует использовать в сочетании с пересылкой событий касания с помощью QWaylandQuickItem::touchEventsEnabled или sendFullTouchEvent, так как это может привести к конфликту идентификаторов касания.
Возвращает серийный номер для события движения касания.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
uint QWaylandSeat::sendTouchPointPressed(QWaylandSurface *surface, int id, const QPointF &position)
Отправляет событие нажатия точки касания с id на surface с позицией position.
Примечание: Необходимо отправить событие кадра касания, когда вы закончите отправку событий касания.
Предупреждение: Этот API не следует использовать в сочетании с пересылкой событий касания с помощью QWaylandQuickItem::touchEventsEnabled или sendFullTouchEvent, так как это может привести к конфликту идентификаторов касания.
Возвращает серийный номер для события нажатия касания.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_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.0/qwaylandseat.html