QWaylandSeat Class

큐웨이랜드시트 클래스는 키보드, 마우스 및 터치 입력에 대한 액세스를 제공합니다. 더 보기...

Header: #include <QWaylandSeat>
CMake: find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake: QT += waylandcompositor
QML에서: WaylandSeat
상속합니다: QWaylandObject

공용 유형

enum CapabilityFlag { Pointer, Keyboard, Touch, DefaultCapabilities }
flags CapabilityFlags

속성

  • drag : QWaylandDrag* const
  • keymap : QWaylandKeymap* const

공공 기능

QWaylandSeat(QWaylandCompositor *compositor, QWaylandSeat::CapabilityFlags capabilityFlags = DefaultCapabilities)
virtual ~QWaylandSeat() override
QWaylandSeat::CapabilityFlags capabilities() const
QWaylandCompositor *compositor() const
QWaylandDrag *drag() const
virtual 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)
(since 6.7) void sendUnicodeKeyPressEvent(uint unicode)
(since 6.7) void sendUnicodeKeyReleaseEvent(uint unicode)
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는 다양한 유형의 사용자 입력에 대한 액세스를 제공하고 키보드 포커스와 마우스 포인터를 유지합니다. 이는 Wayland 프로토콜의 wl_seat 인터페이스에 해당합니다.

멤버 유형 문서

열거형 QWaylandSeat::CapabilityFlag
플래그 QWaylandSeat::CapabilityFlags

이 열거형 유형은 QWaylandSeat 의 기능을 설명합니다.

Constant설명
QWaylandSeat::Pointer0x01QWaylandSeat 은 포인터 입력을 지원합니다.
QWaylandSeat::Keyboard0x02QWaylandSeat 은 키보드 입력을 지원합니다.
QWaylandSeat::Touch0x04QWaylandSeat 은 터치 입력을 지원합니다.
QWaylandSeat::DefaultCapabilitiesPointer | Keyboard | TouchQWaylandSeat 에는 기본 기능이 있습니다.

CapabilityFlags 유형은 QFlags<CapabilityFlag>에 대한 typedef입니다. CapabilityFlag 값의 OR 조합을 저장합니다.

속성 문서

[read-only] drag : QWaylandDrag* const

이 속성은 드래그 앤 드롭 작업을 보관하고 시작 및 종료 시 신호를 보냅니다. 이 속성은 사용자가 마우스 커서를 드래그할 때 마우스 커서 아래에 있어야 하는 이미지와 같은 세부 정보를 저장합니다.

액세스 함수:

QWaylandDrag *drag() const

[read-only] keymap : QWaylandKeymap* const

이 프로퍼티는 키맵 객체를 보유합니다.

키맵은 실제 키 스캔 코드를 의미 있는 값으로 변환하는 방법을 제공합니다. 예를 들어 노르웨이어 레이아웃의 키맵을 사용하는 경우 문자 L의 오른쪽에 있는 키는 Ø를 생성합니다.

또한 키맵을 사용하여 컨트롤과 CAPS 잠금의 교체 여부 등을 지정하는 등 키 기능을 사용자 지정할 수도 있습니다.

액세스 함수:

QWaylandKeymap *keymap()

멤버 기능 문서

QWaylandSeat::QWaylandSeat(QWaylandCompositor *compositor, QWaylandSeat::CapabilityFlags capabilityFlags = DefaultCapabilities)

주어진 compositorcapabilityFlags 에 대한 QWaylandSeat를 구축합니다.

[override virtual noexcept] QWaylandSeat::~QWaylandSeat()

를 파괴합니다. QWaylandSeat

QWaylandSeat::CapabilityFlags QWaylandSeat::capabilities() const

QWaylandSeat 에 대한 기능 플래그를 반환합니다.

QWaylandCompositor *QWaylandSeat::compositor() const

QWaylandSeat 에 대한 컴포지터를 반환합니다.

[signal] void QWaylandSeat::cursorSurfaceRequest(QWaylandSurface *surface, int hotspotX, int hotspotY)

이 신호는 클라이언트가 특정 surface 을 마우스 커서로 지정하도록 요청했을 때 발생합니다. 예를 들어 사용자가 특정 서피스 위로 마우스를 가져갔을 때 커서가 크기 조정 화살표로 변경되기를 원하는 경우입니다.

hotspotXhotspotY 모두 클릭이 발생해야 하는 포인터 서페이스의 왼쪽 상단에서 오프셋됩니다. 예를 들어, 요청된 커서 서페이스가 화살표인 경우 매개변수는 해당 서페이스에서 화살표의 끝이 어디에 있는지를 나타냅니다.

QWaylandDrag *QWaylandSeat::drag() const

QWaylandSeat 에 대한 드래그 객체를 반환합니다.

참고: 프로퍼티 드래그를 위한 겟터 함수입니다.

[static] QWaylandSeat *QWaylandSeat::fromSeatResource(struct wl_resource *resource)

resource 에 해당하는 QWaylandSeat 을 반환합니다. resource 은 wl_seat 유형으로 예상됩니다.

[virtual] void QWaylandSeat::initialize()

생성자에서 설정한 기능에 해당하는 시트의 일부를 초기화하거나 setCapabilities()를 통해 초기화합니다.

참고: 일반적으로 이 함수는 시트와 컴포저가 생성된 후 자동으로 호출되므로 일반적으로 수동으로 호출할 필요가 없습니다.

bool QWaylandSeat::isInitialized() const

QWaylandSeat 이 초기화되면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.

true 값은 이제 클라이언트가 시트 사용을 시작할 수 있음을 나타냅니다.

QWaylandKeyboard *QWaylandSeat::keyboard() const

이 입력 장치의 키보드를 반환합니다.

QWaylandSurface *QWaylandSeat::keyboardFocus() const

키보드 입력을 위해 현재 초점이 맞춰진 서페이스를 반환합니다.

setKeyboardFocus()도 참조하세요 .

[signal] void QWaylandSeat::keyboardFocusChanged(QWaylandSurface *newFocus, QWaylandSurface *oldFocus)

이 신호는 setKeyboardFocus()가 호출될 때 발생합니다.

newFocus 는 키보드 포커스를 받은 서페이스, nullptr 는 포커스가 없는 서페이스, oldFocus 는 키보드 포커스를 잃은 서페이스, nullptr 는 포커스가 있는 서페이스가 있을 때 발생합니다.

QWaylandKeymap *QWaylandSeat::keymap()

QWaylandSeat 에 대한 키맵 객체를 반환합니다.

참고: 프로퍼티 키맵에 대한 겟터 함수입니다.

QWaylandView *QWaylandSeat::mouseFocus() const

현재 마우스 포커스가 있는 뷰를 반환합니다.

setMouseFocus()도 참조하십시오 .

[signal] void QWaylandSeat::mouseFocusChanged(QWaylandView *newFocus, QWaylandView *oldFocus)

이 신호는 마우스 포커스가 oldFocus 에서 newFocus 으로 변경되었을 때 발생합니다.

QWaylandPointer *QWaylandSeat::pointer() const

QWaylandSeat 에 대한 포인터 장치를 반환합니다.

void QWaylandSeat::sendFullKeyEvent(QKeyEvent *event)

event 을 키보드 장치로 보냅니다.

참고: event 은 현재 매핑에서 실제 키보드 키에 해당해야 합니다. 예를 들어 Qt::Key_Exclam 은 일반적으로 별도의 키가 아니며, 대부분의 키보드에서 느낌표는 Shift + 1로 생성됩니다. 이 경우 느낌표 키 누르기 이벤트를 보내려면 QKeyEvent(QEvent::KeyPress, Qt::Key_1, Qt::ShiftModifier) 을 사용합니다.

void QWaylandSeat::sendFullTouchEvent(QWaylandSurface *surface, QTouchEvent *event)

터치 장치의 지정된 surface 으로 event 을 전송합니다.

경고: 이 API는 클라이언트에 보내기 전에 QEventPoint::id()를 순차적 ID에 자동으로 매핑합니다. 따라서 충돌이 발생할 수 있으므로 명시적 ID를 사용하는 다른 API와 함께 사용해서는 안 됩니다.

[invokable] void QWaylandSeat::sendKeyEvent(int qtKey, bool pressed)

키의 키 누르기( pressedtrue 인 경우) 또는 놓기( pressedfalse 인 경우) 이벤트를 키보드 장치로 qtKey 전송합니다.

참고: 이 기능은 Qt::Key_Exclam 과 같이 수정자가 필요한 키 이벤트는 지원하지 않습니다. 대신 sendFullKeyEvent 을 사용하세요.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 을 참조하세요.

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)

QWaylandSeat 의 포인터 장치로 button 에 대한 마우스 누르기 이벤트를 보냅니다.

void QWaylandSeat::sendMouseReleaseEvent(Qt::MouseButton button)

button 에 대한 마우스 릴리스 이벤트를 QWaylandSeat 의 포인터 장치로 보냅니다.

void QWaylandSeat::sendMouseWheelEvent(Qt::Orientation orientation, int delta)

주어진 orientationdelta 을 사용하여 QWaylandSeat 의 포인터 장치로 마우스 휠 이벤트를 전송합니다.

[invokable] void QWaylandSeat::sendTouchCancelEvent(QWaylandClient *client)

client 의 터치 디바이스로 취소 이벤트를 보냅니다.

참고: 이 함수는 메타객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 을 참조하세요.

[invokable] void QWaylandSeat::sendTouchFrameEvent(QWaylandClient *client)

일련의 터치 업, 다운 및 모션 이벤트의 끝을 나타내는 프레임 이벤트를 client 의 터치 장치로 보냅니다.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 을 참조하세요.

uint QWaylandSeat::sendTouchPointEvent(QWaylandSurface *surface, int id, const QPointF &point, Qt::TouchPointState state)

지정된 id, pointstate 을 사용하여 터치 디바이스의 surface 으로 터치 포인트 이벤트를 보냅니다.

경고: 이 API는 터치 ID가 충돌할 수 있으므로 QWaylandQuickItem::touchEventsEnabled 또는 sendFullTouchEvent 을 사용한 터치 이벤트 전달과 함께 사용해서는 안 됩니다.

터치 업 또는 터치 다운 이벤트의 시리얼을 반환합니다.

[invokable] uint QWaylandSeat::sendTouchPointMoved(QWaylandSurface *surface, int id, const QPointF &position)

surface 의 터치 포인트 id 에 대한 터치 이동 이벤트를 위치 position 로 전송합니다.

참고: 터치 이벤트 전송이 끝나면 터치 프레임 이벤트를 전송해야 합니다.

경고: 이 API는 터치 ID가 충돌할 수 있으므로 QWaylandQuickItem::touchEventsEnabled 또는 sendFullTouchEvent 을 사용한 터치 이벤트 전달과 함께 사용해서는 안 됩니다.

터치 모션 이벤트의 시리얼을 반환합니다.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 을 참조하세요.

[invokable] uint QWaylandSeat::sendTouchPointPressed(QWaylandSurface *surface, int id, const QPointF &position)

surface 의 터치 포인트 id 에 대한 터치 누름 이벤트를 위치 position 로 전송합니다.

참고: 터치 이벤트 전송이 끝나면 터치 프레임 이벤트를 전송해야 합니다.

경고: 이 API는 터치 ID가 충돌할 수 있으므로 QWaylandQuickItem::touchEventsEnabled 또는 sendFullTouchEvent 을 사용한 터치 이벤트 전달과 함께 사용해서는 안 됩니다.

터치 다운 이벤트의 시리얼을 반환합니다.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 을 참조하세요.

[invokable] uint QWaylandSeat::sendTouchPointReleased(QWaylandSurface *surface, int id, const QPointF &position)

surface 의 터치 포인트 id 에 대한 터치 릴리스 이벤트를 위치 position 로 전송합니다.

참고: 터치 이벤트 전송이 끝나면 터치 프레임 이벤트를 전송해야 합니다.

경고: 이 API는 터치 ID가 충돌할 수 있으므로 QWaylandQuickItem::touchEventsEnabled 또는 sendFullTouchEvent 을 사용하여 터치 이벤트를 전달하는 것과 함께 사용해서는 안 됩니다.

터치 이벤트의 시리얼을 반환합니다.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 을 참조하세요.

[invokable, since 6.7] void QWaylandSeat::sendUnicodeKeyPressEvent(uint unicode)

텍스트 입력 프로토콜을 통해 UCS4 unicode 의 키 누르기 이벤트를 전송합니다.

참고: 클라이언트가 컴포저가 지원하는 텍스트 입력 프로토콜을 지원하지 않는 경우 이 함수는 제대로 작동하지 않습니다.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

이 함수는 Qt 6.7에 도입되었습니다.

sendKeyEvent참조하십시오 .

[invokable, since 6.7] void QWaylandSeat::sendUnicodeKeyReleaseEvent(uint unicode)

텍스트 입력 프로토콜을 통해 UCS4 unicode 의 키 릴리스 이벤트를 전송합니다.

참고: 클라이언트가 컴포저가 지원하는 텍스트 입력 프로토콜을 지원하지 않는 경우 이 함수는 제대로 작동하지 않습니다.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

이 함수는 Qt 6.7에 도입되었습니다.

sendKeyEvent참조하십시오 .

bool QWaylandSeat::setKeyboardFocus(QWaylandSurface *surface)

현재 키보드 포커스를 surface 로 설정합니다. 작업이 성공했는지 여부를 나타내는 부울을 반환합니다.

keyboardFocus()도 참조하세요 .

void QWaylandSeat::setMouseFocus(QWaylandView *view)

현재 마우스 포커스를 view 로 설정합니다.

mouseFocus()도 참조하세요 .

QWaylandTouch *QWaylandSeat::touch() const

QWaylandSeat 에 대한 터치 장치를 반환합니다.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.