QInputDevice Class

QInputDevice クラスは、QInputEvent の発信元となるデバイスを記述します。詳細...

Header: #include <QInputDevice>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Since: Qt 6.0
Inherits: QObject
Inherited By:

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

信号

静的パブリックメンバー

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::None0入力デバイスの能力に関する情報は利用できません。
QInputDevice::Capability::Position0x0001タッチポイントの position() 関数ファミリーが有効な点を返すことを意味する。
QInputDevice::Capability::Area0x0002タッチエリア情報が利用可能であることを示し、タッチポイントのQEventPoint::ellipseDiameters() が有効な値を返すことを意味する。
QInputDevice::Capability::Pressure0x0004QEventPoint::pressure ()が有効な値を返すことを意味する。
QInputDevice::Capability::Velocity0x0008QEventPoint::velocity ()が有効なベクトルを返すことを意味する。
QInputDevice::Capability::NormalizedPosition0x0020QEventPoint::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>のtypedefである。Capabilities値のORの組み合わせが格納されます。

enum class QInputDevice::DeviceType
flags QInputDevice::DeviceTypes

この列挙型は、QPointerEvent を生成したデバイスのタイプを表します。

定数説明
QInputDevice::DeviceType::Unknown0x0000デバイスを識別できない。
QInputDevice::DeviceType::Mouse0x0001マウス。
QInputDevice::DeviceType::TouchScreen0x0002このタイプのデバイスでは、タッチ面とディスプレイは統合されている。つまり、サーフェスとディスプレイは通常同じサイズであり、タッチ点の物理的な位置とQEventPoint によって報告される座標の間には直接的な関係があります。その結果、Qt では複数の QWidgets、QGraphicsItems、または Qt Quick Items を同時に直接操作することができます。
QInputDevice::DeviceType::TouchPad0x0004このタイプのデバイスでは、タッチ面はディスプレイから分離されています。物理的なタッチ位置と画面上の座標の間には直接的な関係はありません。その代わり、座標は現在のマウス位置から相対的に計算され、ユーザーはタッチパッドを使ってこの基準点を移動する必要があります。タッチスクリーンとは異なり、Qtでは一度に1つのQWidgetQGraphicsItem
QInputDevice::DeviceType::Stylus0x0010ワコムタブレットのようなグラフィックタブレットや、タッチスクリーンで使用されるペンのようなデバイス。
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 、一緒に使われるデバイスのセットの名前を識別します。デバイスが子デバイスまたはスレーブデバイスの場合(例えば、「コアポインタ」を交代で動かすことができる複数のマウスのうちの1つ)、マスターデバイスをparent

プラットフォーム・プラグインは各デバイス・インスタンスを作成、登録し、所有し続ける。通常、特定のデバイスのマスターが存在しない場合でも、メモリ管理の目的でparent

デフォルトでは、capabilities() はNone

QRect QInputDevice::availableVirtualGeometry() const

このデバイスがアクセスできるvirtual desktop 内の領域を返します。

たとえば、TouchScreen 入力デバイスは物理的な1つの画面上に固定されており、通常はこの領域がQScreen::geometry() と同じになるようにキャリブレーションされている。一方、Mouse はおそらく仮想デスクトップ上のすべての画面にアクセスできる。ワコムのグラフィック・タブレットは、すべての画面にマッピングされるように設定されることもあれば、ユーザーが図面を作成する画面、または図面を作成するウィンドウにのみマッピングされるように設定されることもある。タッチスクリーンと統合されたStylus デバイスは、物理的にそのスクリーンに限定される場合があります。

返された矩形がnull の場合、このデバイスは仮想デスクトップ全体にアクセスできることを意味します。

注: availableVirtualGeometry プロパティのゲッター関数です。

QInputDevice::Capabilities QInputDevice::capabilities() const

デバイス能力を返す。

備考 :プロパティ capabilities のゲッター関数。

[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

デバイス・タイプを返します。

:プロパティ type のゲッター関数です。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。