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) |
静的パブリックメンバー
QList<const QInputDevice *> | devices() |
const QInputDevice * | primaryKeyboard(const QString &seatName = QString()) |
(since 6.3) QStringList | seatNames() |
詳細説明
各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 | タッチエリア情報が利用可能であることを示し、タッチポイントのQEventPoint::ellipseDiameters() が有効な値を返すことを意味する。 |
QInputDevice::Capability::Pressure | 0x0004 | QEventPoint::pressure ()が有効な値を返すことを意味する。 |
QInputDevice::Capability::Velocity | 0x0008 | QEventPoint::velocity ()が有効なベクトルを返すことを意味する。 |
QInputDevice::Capability::NormalizedPosition | 0x0020 | QEventPoint::globalPosition() が有効な値を返すことを意味する。 |
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 | Y 軸にtilt の情報が利用可能であることを示す。 |
QInputDevice::Capability::TangentialPressure | 0x2000 | tangential pressure 情報が利用可能であることを示す。 |
QInputDevice::Capability::ZPosition | 0x4000 | Z-axis の位置情報が利用可能であることを示す。 |
QInputDevice::Capability::All | 0x7FFFFFFF |
Capabilities型は、QFlags<Capability>のtypedefである。Capabilities値のORの組み合わせが格納されます。
enum class QInputDevice::DeviceType
flags QInputDevice::DeviceTypes
この列挙型は、QPointerEvent を生成したデバイスのタイプを表します。
定数 | 値 | 説明 |
---|---|---|
QInputDevice::DeviceType::Unknown | 0x0000 | デバイスを識別できない。 |
QInputDevice::DeviceType::Mouse | 0x0001 | マウス。 |
QInputDevice::DeviceType::TouchScreen | 0x0002 | このタイプのデバイスでは、タッチ面とディスプレイは統合されている。つまり、サーフェスとディスプレイは通常同じサイズであり、タッチ点の物理的な位置とQEventPoint によって報告される座標の間には直接的な関係があります。その結果、Qt では複数の QWidgets、QGraphicsItems、Qt Quick Items を同時に直接操作することができます。 |
QInputDevice::DeviceType::TouchPad | 0x0004 | このタイプのデバイスでは、タッチ面はディスプレイから分離されています。物理的なタッチ位置と画面上の座標の間には直接的な関係はありません。その代わり、座標は現在のマウス位置から相対的に計算され、ユーザーはタッチパッドを使ってこの基準点を移動する必要があります。タッチスクリーンとは異なり、Qt では一度に 1 つのQWidget またはQGraphicsItem だけを操作することができます。 |
QInputDevice::DeviceType::Stylus | 0x0010 | ワコムタブレットのようなグラフィックタブレットや、タッチスクリーンで使用されるペンのようなデバイス。 |
QInputDevice::DeviceType::Airbrush | 0x0020 | tangentialPressure を調整するためのサムホイールを備えたスタイラス。 |
QInputDevice::DeviceType::Puck | 0x0008 | 十字のヘアが付いた透明な円を持つ、平らなマウスに似たデバイス。 |
QInputDevice::DeviceType::Keyboard | 0x1000 | キーボード。 |
QInputDevice::DeviceType::AllDevices | 0x7FFFFFFF | 上記のいずれか(デフォルトのフィルタ値として使用)。 |
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 、一緒に使われるデバイスのセットの名前を識別します。デバイスが子デバイスまたはスレーブデバイスの場合(例えば、「コアポインタ」を交代で動かすことができる複数のマウスのうちの1つ)、マスターデバイスをparent 。
プラットフォーム・プラグインは各デバイスのインスタンスを作成、登録し、所有し続けます。通常、特定のデバイスのマスターが存在しない場合でも、メモリ管理の目的でparent を指定する必要があります。
デフォルトでは、capabilities() はNone
。
QRect QInputDevice::availableVirtualGeometry() const
このデバイスがアクセスできるvirtual desktop 内の領域を返す。
例えば、TouchScreen の入力デバイスは物理的な1つのスクリーンに固定され、通常はこの領域がQScreen::geometry() と同じになるようにキャリブレーションされます。一方、Mouse はおそらく仮想デスクトップ上のすべてのスクリーンにアクセスできます。ワコムのグラフィック・タブレットは、すべての画面にマッピングされるように設定されることもあれば、ユーザーが図面を作成する画面、または図面を作成するウィンドウにのみマッピングされることもある。タッチスクリーンと統合された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
そうでなければ空白。
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
デバイスタイプを返す。
注: プロパティタイプのゲッター関数です。
© 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.