QInputDevice Class

QInputDevice 클래스는 QInputEvent 의 출처가 되는 장치를 설명합니다. 더 보기...

헤더: #include <QInputDevice>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
이후: Qt 6.0
상속합니다: QObject
상속 대상:

QPointingDevice

공용 형

flags Capabilities
enum class Capability { None, Position, Area, Pressure, Velocity, …, All }
enum class DeviceType { Unknown, Mouse, TouchScreen, TouchPad, Stylus, …, AllDevices }
flags DeviceTypes

공용 함수

QInputDevice(QObject *parent = nullptr)
QInputDevice(const QString &name, qint64 id, QInputDevice::DeviceType type, const QString &seatName = QString(), QObject *parent = nullptr)
QRect availableVirtualGeometry() const
QInputDevice::Capabilities capabilities() const
bool hasCapability(QInputDevice::Capability capability) const
QString name() const
QString seatName() const
qint64 systemId() const
QInputDevice::DeviceType type() const

Signals

정적 공용 멤버

QList<const QInputDevice *> devices()
const QInputDevice *primaryKeyboard(const QString &seatName = QString())
(since 6.3) QStringList seatNames()

상세 설명

QInputEvent 에는 유형, 기능 및 좌석과 같은 장치별 프로퍼티에 액세스할 수 있는 QInputDevice 포인터가 포함되어 있습니다. 플랫폼 또는 일반 플러그인은 해당 장치를 참조하는 입력 이벤트를 생성하기 전에 QWindowSystemInterface::registerInputDevice()를 통해 사용 가능한 각 입력 장치에 해당하는 이 클래스의 인스턴스를 검색, 생성 및 등록할 책임이 있습니다.

응용 프로그램은 이 클래스를 인스턴스화할 필요는 없지만 QInputEvent::device() 및 QInputDevice::devices()가 가리키는 인스턴스를 읽을 수 있습니다.

멤버 유형 문서

열거형 클래스 QInputDevice::Capability
플래그 QInputDevice::Capabilities

입력 장치 또는 그 드라이버가 제공할 수 있는 정보의 종류를 나타냅니다.

Constant설명
QInputDevice::Capability::None0입력 장치 기능에 대한 정보를 사용할 수 없습니다.
QInputDevice::Capability::Position0x0001위치 정보를 사용할 수 있음을 나타냅니다. 즉, 터치 포인트의 위치() 함수군이 유효한 포인트를 반환합니다.
QInputDevice::Capability::Area0x0002터치 영역 정보를 사용할 수 있음을 나타냅니다. 즉, 터치 포인트의 QEventPoint::ellipseDiameters() 함수가 유효한 값을 반환합니다.
QInputDevice::Capability::Pressure0x0004압력 정보를 사용할 수 있음을 나타내며, QEventPoint::pressure()가 유효한 값을 반환함을 의미합니다.
QInputDevice::Capability::Velocity0x0008속도 정보를 사용할 수 있음을 나타냅니다. QEventPoint::velocity()가 유효한 벡터를 반환한다는 의미입니다.
QInputDevice::Capability::NormalizedPosition0x0020정규화된 위치를 사용할 수 있음을 나타냅니다. QEventPoint::globalPosition()가 유효한 값을 반환한다는 의미입니다.
QInputDevice::Capability::MouseEmulation0x0040장치가 마우스 이벤트를 합성하고 있음을 나타냅니다.
QInputDevice::Capability::Scroll0x0100장치에 스크롤 기능이 있음을 나타냅니다.
QInputDevice::Capability::PixelScroll (since Qt 6.2)0x0080디바이스(일반적으로 touchpad)가 pixel precision 으로 스크롤함을 나타냅니다.
QInputDevice::Capability::Hover0x0200디바이스에 호버 기능이 있음을 나타냅니다.
QInputDevice::Capability::Rotation0x0400rotation 정보를 사용할 수 있음을 나타냅니다.
QInputDevice::Capability::XTilt0x0800X축에 tilt 정보를 사용할 수 있음을 나타냅니다.
QInputDevice::Capability::YTilt0x1000Y축에 tilt 정보를 사용할 수 있음을 나타냅니다.
QInputDevice::Capability::TangentialPressure0x2000tangential pressure 정보를 사용할 수 있음을 나타냅니다.
QInputDevice::Capability::ZPosition0x4000Z-axis 위치에 대한 위치 정보를 사용할 수 있음을 나타냅니다.
QInputDevice::Capability::All0x7FFFFFFF

Capabilities 유형은 QFlags<Capability>에 대한 타입 정의입니다. Capability 값의 OR 조합을 저장합니다.

열거형 클래스 QInputDevice::DeviceType
플래그 QInputDevice::DeviceTypes

이 열거형은 QPointerEvent 을 생성한 장치의 유형을 나타냅니다.

Constant설명
QInputDevice::DeviceType::Unknown0x0000장치를 식별할 수 없습니다.
QInputDevice::DeviceType::Mouse0x0001마우스.
QInputDevice::DeviceType::TouchScreen0x0002이 유형의 장치에서는 터치 표면과 디스플레이가 통합되어 있습니다. 즉, 일반적으로 표면과 디스플레이의 크기가 동일하므로 터치 포인트의 물리적 위치와 QEventPoint 에 의해 보고된 좌표 사이에 직접적인 관계가 있습니다. 그 결과, Qt를 사용하면 사용자가 동시에 여러 QWidget, QGraphicsItems 또는 Qt Quick 항목과 직접 상호 작용할 수 있습니다.
QInputDevice::DeviceType::TouchPad0x0004이 유형의 장치에서는 터치 표면이 디스플레이와 분리되어 있습니다. 물리적 터치 위치와 화면 좌표 사이에는 직접적인 관계가 없습니다. 대신 현재 마우스 위치를 기준으로 계산되며 사용자는 이 기준점을 이동하기 위해 터치 패드를 사용해야 합니다. 터치스크린과 달리 Qt는 사용자가 한 번에 하나의 QWidget 또는 QGraphicsItem 와만 상호 작용할 수 있습니다.
QInputDevice::DeviceType::Stylus0x0010Wacom 태블릿과 같은 그래픽 태블릿 또는 별도의 스타일러스 감지 기능을 제공하는 터치스크린에서 사용되는 펜과 같은 장치입니다.
QInputDevice::DeviceType::Airbrush0x0020tangentialPressure 을 조정할 수 있는 썸휠이 있는 스타일러스.
QInputDevice::DeviceType::Puck0x0008십자선이 있는 투명한 원이 있는 평면 마우스와 유사한 장치.
QInputDevice::DeviceType::Keyboard0x1000키보드.
QInputDevice::DeviceType::AllDevices0x7FFFFFFF위의 모든 것(기본 필터 값으로 사용됨).

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

멤버 함수 문서

QInputDevice::QInputDevice(QObject *parent = nullptr)

parent 의 자식으로 잘못된 입력 장치 인스턴스를 새로 생성합니다.

QInputDevice::QInputDevice(const QString &name, qint64 id, QInputDevice::DeviceType type, const QString &seatName = QString(), QObject *parent = nullptr)

새 입력 장치 인스턴스를 생성합니다. 주어진 name 은 일반적으로 제조업체에서 할당된 모델명(사용 가능한 경우) 또는 기타 식별 가능한 이름이고, id 은 장치별로 고유한 플랫폼별 번호(예: X11의 xinput ID)이며, type 은 어떤 종류의 장치인지 식별합니다. 여러 사용자 또는 입력 장치 세트의 입력을 동시에 처리할 수 있는 창 시스템(예: Wayland 또는 X11)에서는 seatName 이 함께 사용될 장치 세트의 이름을 식별합니다. 장치가 하위 또는 슬레이브 장치인 경우(예: '코어 포인터'를 교대로 움직일 수 있는 여러 마우스 중 하나) 마스터 장치는 parent 로 지정해야 합니다.

플랫폼 플러그인은 각 장치 인스턴스를 생성, 등록하고 계속 소유하며, 특정 장치에 대한 마스터가 없더라도 메모리 관리 목적으로 일반적으로 parent 을 지정해야 합니다.

기본적으로 capabilities()는 None 입니다.

QRect QInputDevice::availableVirtualGeometry() const

이 장치가 액세스할 수 있는 virtual desktop 내 영역을 반환합니다.

예를 들어 TouchScreen 입력 장치는 하나의 실제 화면에 고정되어 있으며 일반적으로 이 영역이 QScreen::geometry()와 동일하도록 보정되지만, Mouse 은 가상 데스크톱의 모든 화면에 액세스할 수 있을 것입니다. Wacom 그래픽 태블릿은 모든 화면에 매핑되는 방식으로 구성하거나, 사용자가 원하는 화면 또는 드로잉이 발생하는 창에만 매핑되도록 구성할 수 있습니다. 터치스크린과 통합된 Stylus 장치는 물리적으로 해당 화면으로 제한될 수 있습니다.

반환된 사각형이 null 인 경우 이 장치는 전체 가상 데스크톱에 액세스할 수 있음을 의미합니다.

참고: availableVirtualGeometry 속성에 대한 가져 오기 함수.

QInputDevice::Capabilities QInputDevice::capabilities() const

디바이스 기능을 반환합니다.

참고: 속성 기능에 대한 게터 함수입니다.

[static] QList<const QInputDevice *> QInputDevice::devices()

등록된 모든 입력 장치(키보드 및 포인팅 장치)의 목록을 반환합니다.

참고: 모든 플랫폼에서 장치 목록이 항상 완전한 것은 아닙니다. 지금까지 가장 완전한 정보는 X11 플랫폼에서 시작 시 및 핫 플러그에 대한 응답으로 제공됩니다. 대부분의 다른 플랫폼은 다양한 유형의 일반 장치에 대해서만 이벤트를 수신한 후에야 제공할 수 있으며, 대부분의 플랫폼은 장치가 언제 연결되었는지 또는 언제 분리되었는지 런타임에 Qt에 알려주지 않습니다.

참고: 반환된 목록은 새 장치를 추가하는 데 사용할 수 없습니다. 자동 테스트를 위해 시뮬레이션된 터치 스크린을 추가하려면 QTest::createTouchDevice()를 사용할 수 있습니다. 플랫폼 플러그인은 발견되는 대로 QWindowSystemInterface::registerInputDevice()를 호출하여 장치를 추가해야 합니다.

bool QInputDevice::hasCapability(QInputDevice::Capability capability) const

디바이스 기능에 지정된 capability 이 포함되어 있는지 여부를 반환합니다.

QString QInputDevice::name() const

장치 이름을 반환합니다.

이 문자열은 비어 있을 수 있습니다. 그러나 여러 입력 장치가 있는 시스템에서는 QPointerEvent 이 어떤 장치에서 시작되었는지 구분하는 데 사용할 수 있습니다.

참고: 속성 이름에 대한 게터 함수입니다.

[static] const QInputDevice *QInputDevice::primaryKeyboard(const QString &seatName = QString())

주어진 좌석의 코어 또는 마스터 키보드를 반환합니다 seatName.

QString QInputDevice::seatName() const

장치가 연결된 좌석을 알고 있는 경우 반환하고, 그렇지 않으면 비워 둡니다.

한 사용자가 함께 사용하려는 디바이스는 동일한 좌석 이름을 갖도록 구성할 수 있습니다. 이는 현재까지는 Wayland 및 X11 플랫폼에서만 가능합니다.

참고: seatName 속성에 대한 게터 함수.

[static, since 6.3] QStringList QInputDevice::seatNames()

등록된 모든 입력 장치(키보드 및 포인팅 장치)의 좌석 이름 목록을 반환합니다.

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

qint64 QInputDevice::systemId() const

플랫폼별 시스템 ID를 반환합니다(예: X11 플랫폼의 xinput ID).

모든 플랫폼은 각 디바이스에 대해 고유한 시스템 ID를 제공해야 합니다.

참고: systemId 속성에 대한 게터 함수.

QInputDevice::DeviceType QInputDevice::type() const

디바이스 유형을 반환합니다.

참고: 속성 유형에 대한 게터 함수입니다.

© 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.