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 |
| 継承元: |
パブリック型
| 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::None | 0 | 入力デバイスの機能に関する情報は利用できません。 |
QInputDevice::Capability::Position | 0x0001 | 位置情報が利用可能であることを示します。つまり、タッチポイントの position() ファミリーの関数が有効な座標を返すことを意味します。 |
QInputDevice::Capability::Area | 0x0002 | タッチ領域情報が利用可能であることを示します。つまり、touch points のQEventPoint::ellipseDiameters() が有効な値を返します。 |
QInputDevice::Capability::Pressure | 0x0004 | 圧力情報が利用可能であることを示します。つまり、QEventPoint::pressure() が有効な値を返します。 |
QInputDevice::Capability::Velocity | 0x0008 | 速度情報が利用可能であることを示します。つまり、touch points 内のQEventPoint::velocity() が有効なベクトルを返します。 |
QInputDevice::Capability::NormalizedPosition | 0x0020 | 正規化された位置が利用可能であることを示します。つまり、QEventPoint::normalizedPosition() が有効な値を返すことを意味します。 |
QInputDevice::Capability::MouseEmulation | 0x0040 | デバイスがマウスイベントを合成することを示します。 |
QInputDevice::Capability::Scroll | 0x0100 | デバイスがスクロール機能を備えていることを示します。 |
QInputDevice::Capability::PixelScroll (since Qt 6.2) | 0x0080 | デバイス(通常はtouchpad )がpixel precision を使用してスクロールすることを示します。 |
QInputDevice::Capability::Hover | 0x0200 | デバイスがホバー機能を備えていることを示します。 |
QInputDevice::Capability::Rotation | 0x0400 | rotation の情報が利用可能であることを示します。 |
QInputDevice::Capability::XTilt | 0x0800 | X 軸について、tilt 情報が利用可能であることを示します。 |
QInputDevice::Capability::YTilt | 0x1000 | tilt 情報が Y 軸で利用可能であることを示します。 |
QInputDevice::Capability::TangentialPressure | 0x2000 | tangential pressure の情報が利用可能であることを示します。 |
QInputDevice::Capability::ZPosition | 0x4000 | Z-axis の位置情報が利用可能であることを示します。 |
QInputDevice::Capability::All | 0x7FFFFFFF |
Capabilities 型は、QFlags<Capability> の typedef です。Capability 値の OR 結合を格納します。
enum class QInputDevice::DeviceType
flags QInputDevice::DeviceTypes
この列挙型は、QPointerEvent を生成したデバイスの種類を表します。
| 定数 | 値 | 説明 |
|---|---|---|
QInputDevice::DeviceType::Unknown | 0x0000 | デバイスを識別できません。 |
QInputDevice::DeviceType::Mouse | 0x0001 | マウス。 |
QInputDevice::DeviceType::TouchScreen | 0x0002 | このタイプのデバイスでは、タッチ面とディスプレイが一体化しています。 つまり、通常、タッチ面とディスプレイは同じサイズであるため、タッチポイントの物理的な位置と、QEventPoint によって報告される座標との間に直接的な関係があります。その結果、Qt では、ユーザーが複数の QWidget、QGraphicsItem、またはQt Quick アイテムに対して同時に直接操作を行うことができます。 |
QInputDevice::DeviceType::TouchPad | 0x0004 | このタイプのデバイスでは、タッチ表面はディスプレイとは別個のものとなっています。 物理的なタッチ位置と画面上の座標との間には直接的な関係はありません。代わりに、それらは現在のマウス位置を基準として計算され、ユーザーはこの基準点を移動させるためにタッチパッドを使用する必要があります。タッチスクリーンとは異なり、Qtではユーザーが一度に操作できるQWidget またはQGraphicsItem は1つだけです。 |
QInputDevice::DeviceType::Stylus | 0x0010 | Wacomタブレットなどのグラフィックスタブレット、あるいは独立したスタイラス検知機能を備えたタッチスクリーンで使用される、ペンのようなデバイス。 |
QInputDevice::DeviceType::Airbrush | 0x0020 | tangentialPressure を調整するためのサムホイールを備えたスタイラス。 |
QInputDevice::DeviceType::Puck | 0x0008 | 十字線が入った透明な円を持つ、平らなマウスに似たデバイス。 |
QInputDevice::DeviceType::Keyboard | 0x1000 | キーボード。 |
QInputDevice::DeviceType::AllDevices | 0x7FFFFFFF | 上記のいずれか(デフォルトのフィルタ値として使用されます)。 |
DeviceTypes 型は、QFlags<DeviceType> の typedef です。これは、DeviceType 値の OR 組み合わせを格納します。
プロパティのドキュメント
[read-only] availableVirtualGeometry : QRect
このプロパティは、このデバイスがアクセスできる仮想デスクトップ内の領域を指定します。
たとえば、TouchScreen 入力デバイスは 1 つの物理画面上に固定されており、通常、この領域が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 は、組み合わせて使用されるデバイスのセットの名前を識別します。 デバイスが子デバイスまたはスレーブデバイス(たとえば、「コアポインタ」を順番に動かすことができる複数のマウスのうちの 1 つ)である場合、マスターデバイスをparent として指定する必要があります。
プラットフォームプラグインは、各デバイスインスタンスを作成、登録し、引き続き所有します。通常、特定のデバイスにマスターが存在しない場合でも、メモリ管理の目的でparent を指定する必要があります。
デフォルトでは、capabilities() はNone です。
[protected delete] QInputDevice::QInputDevice(const QInputDevice &)
QInputDevice のインスタンスをコピーして生成します。この関数は削除されています。
[protected delete] QInputDevice::QInputDevice(QInputDevice &&)
QInputDevice のインスタンスをMoveコンストラクタで生成します。この関数は削除されています。
QInputDevice::Capabilities QInputDevice::capabilities() const
デバイスの機能情報を返します。
注: プロパティ capabilities のゲッター 関数です。
[static] QList<const QInputDevice *> QInputDevice::devices()
登録されているすべての入力デバイス(キーボードおよびポインティングデバイス)のリストを返します。
注: デバイス一覧は 、すべてのプラットフォームで常に完全であるとは限りません。 現時点で、最も完全な情報が得られるのはLinuxプラットフォームであり、起動時およびホットプラグ時に情報が得られます。他のほとんどのプラットフォームでは、デバイスからのイベントを受信した後にのみ、さまざまなタイプの汎用デバイスを提供できるに過ぎません。また、ほとんどのプラットフォームでは、実行時にデバイスが接続されたときや取り外されたときに 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
デバイスが関連付けられているシートがわかっている場合はそれを返し、そうでない場合は空を返します。
1人のユーザーが同時に使用することを想定したデバイスは、同じシート名を持つように設定できる場合があります。これは現時点では、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.