이 페이지에서

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

신호

void availableVirtualGeometryChanged(QRect area)
void capabilitiesChanged(QInputDevice::Capabilities capabilities)

정적 공용 멤버

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

보호된 함수

QInputDevice(const QInputDevice &)
QInputDevice(QInputDevice &&)
QInputDevice &operator=(QInputDevice &&)
QInputDevice &operator=(const QInputDevice &)

상세 설명

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

애플리케이션은 이 클래스의 인스턴스를 생성할 필요는 없지만, QInputEvent::device() 및 QInputDevice::devices()가 가리키는 인스턴스를 읽을 수 있습니다.

멤버 유형 설명

enum class QInputDevice::Capability
flags QInputDevice::Capabilities

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

상수값설명
QInputDevice::Capability::None0입력 장치의 기능에 대한 정보를 사용할 수 없습니다.
QInputDevice::Capability::Position0x0001위치 정보를 사용할 수 있음을 나타내며, 터치 포인트의 position() 함수 계열이 유효한 포인트를 반환함을 의미합니다.
QInputDevice::Capability::Area0x0002터치 영역 정보를 사용할 수 있음을 나타내며, 즉 touch points의 QEventPoint::ellipseDiameters()가 유효한 값을 반환함을 의미합니다.
QInputDevice::Capability::Pressure0x0004압력 정보를 사용할 수 있음을 나타내며, 즉 touch points의 QEventPoint::pressure()가 유효한 값을 반환함을 의미합니다.
QInputDevice::Capability::Velocity0x0008속도 정보를 사용할 수 있음을 나타내며, 즉 QEventPoint::velocity()가 유효한 벡터를 반환함을 의미합니다.
QInputDevice::Capability::NormalizedPosition0x0020정규화된 위치를 사용할 수 있음을 나타내며, 이는 QEventPoint::normalizedPosition()가 유효한 값을 반환함을 의미합니다.
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>에 대한 typedef입니다. 이 유형은 Capability 값들의 OR 조합을 저장합니다.

enum class QInputDevice::DeviceType
flags QInputDevice::DeviceTypes

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

상수값상수값
QInputDevice::DeviceType::Unknown0x0000장치를 식별할 수 없습니다.
QInputDevice::DeviceType::Mouse0x0001마우스.
QInputDevice::DeviceType::TouchScreen0x0002이 유형의 장치에서는 터치 표면과 디스플레이가 통합되어 있습니다. 즉, 표면과 디스플레이의 크기가 일반적으로 같으므로, 터치 지점의 물리적 위치와 ` QEventPoint`가 반환하는 좌표 간에 직접적인 관계가 있습니다. 그 결과, Qt를 사용하면 여러 QWidget, QGraphicsItem 또는 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 조합을 저장합니다.

속성 설명서

[read-only] availableVirtualGeometry : QRect

이 속성은 해당 장치가 액세스할 수 있는 가상 데스크톱 내의 영역을 지정합니다.

예를 들어, TouchScreen 입력 장치는 단일 물리적 화면에 고정되어 있으며, 일반적으로 이 영역이 QScreen::geometry()와 동일하도록 보정되는 반면, Mouse 는 일반적으로 가상 데스크톱의 모든 화면에 액세스할 수 있습니다.

또는 Wacom 그래픽 태블릿을 모든 화면에 매핑되도록 구성하거나, 사용자가 그림을 그리기를 선호하는 화면에만 매핑되도록 구성하거나, 그림이 그려지는 창에만 매핑되도록 구성할 수도 있습니다.

터치스크린과 통합된 Stylus 장치는 물리적으로 해당 화면으로만 제한될 수 있습니다.

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

액세스 함수:

QRect availableVirtualGeometry() const

알림 신호:

void availableVirtualGeometryChanged(QRect area)

[read-only] capabilities : Capabilities

이 속성은 장치의 기능을 나타냅니다.

액세스 함수:

QInputDevice::Capabilities capabilities() const

알림 신호:

void capabilitiesChanged(QInputDevice::Capabilities capabilities)

[read-only] name : const QString

이 속성은 장치 이름을 저장합니다.

액세스 함수:

QString name() const

[read-only] seatName : const QString

이 속성은 해당 장치와 연관된 좌석을 나타냅니다.

액세스 기능:

QString seatName() const

[read-only] systemId : const qint64

이 속성은 플랫폼별 시스템 ID를 저장합니다.

액세스 함수:

qint64 systemId() const

[read-only] type : const DeviceType

이 속성은 장치 유형을 나타냅니다.

액세스 함수:

QInputDevice::DeviceType type() const

멤버 함수 문서

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 입니다.

[protected delete] QInputDevice::QInputDevice(const QInputDevice &)

QInputDevice 의 인스턴스를 복사하여 생성합니다. 이 함수는 삭제되었습니다.

[protected delete] QInputDevice::QInputDevice(QInputDevice &&)

QInputDevice 의 인스턴스를 이동 생성합니다. 이 함수는 삭제되었습니다.

QInputDevice::Capabilities QInputDevice::capabilities() const

장치의 기능을 반환합니다.

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

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

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

참고: 모든 플랫폼에서 장치목록이 항상 완전한 것은 아닙니다. 현재까지 가장 완전한 정보는 리눅스 플랫폼에서, 시스템 시작 시 및 핫 플러깅에 대한 응답으로 확인할 수 있습니다. 대부분의 다른 플랫폼은 해당 장치로부터 이벤트를 수신한 후에야 다양한 유형의 일반 장치 정보만 제공할 수 있으며, 대부분의 플랫폼은 런타임 중에 장치가 연결되거나 분리될 때 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

장치 유형을 반환합니다.

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

[protected delete] QInputDevice &QInputDevice::operator=(QInputDevice &&)

other 를 이 QInputDevice 인스턴스에 할당합니다. 이 함수는 삭제됩니다.

[protected delete] QInputDevice &QInputDevice::operator=(const QInputDevice &)

other 를 이 QInputDevice 인스턴스에 복사-할당합니다. 이 함수는 삭제되었습니다.

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