このページでは

QSensor Class

QSensor クラスは、1つのハードウェアセンサーを表します。詳細...

ヘッダー: #include <QSensor>
CMake: find_package(Qt6 REQUIRED COMPONENTS Sensors)
target_link_libraries(mytarget PRIVATE Qt6::Sensors)
qmake: QT += sensors
継承元: QObject
継承元:
13 種類

QAccelerometer、QAmbientLightSensor 、QAmbientTemperatureSensor 、QCompass 、QGyroscope 、QHumiditySensor 、QLightSensor 、QMagnetometer 、QOrientationSensor 、QPressureSensor 、QProximitySensor 、QRotationSensor 、およびQTiltSensor

パブリック型

enum AxesOrientationMode { FixedOrientation, AutomaticOrientation, UserOrientation }
enum Feature { Buffering, AlwaysOn, SkipDuplicates, GeoValues, FieldOfView, …, AxesOrientation }

プロパティ

パブリック関数

QSensor(const QByteArray &type, QObject *parent = nullptr)
virtual ~QSensor()
void addFilter(QSensorFilter *filter)
qrangelist availableDataRates() const
QSensor::AxesOrientationMode axesOrientationMode() const
int bufferSize() const
bool connectToBackend()
int currentOrientation() const
int dataRate() const
QString description() const
int efficientBufferSize() const
int error() const
QList<QSensorFilter *> filters() const
QByteArray identifier() const
bool isActive() const
bool isAlwaysOn() const
bool isBusy() const
bool isConnectedToBackend() const
bool isFeatureSupported(QSensor::Feature feature) const
int maxBufferSize() const
int outputRange() const
qoutputrangelist outputRanges() const
QSensorReading *reading() const
void removeFilter(QSensorFilter *filter)
void setActive(bool active)
void setAlwaysOn(bool alwaysOn)
void setAxesOrientationMode(QSensor::AxesOrientationMode axesOrientationMode)
void setBufferSize(int bufferSize)
void setCurrentOrientation(int currentOrientation)
void setDataRate(int rate)
void setEfficientBufferSize(int efficientBufferSize)
void setIdentifier(const QByteArray &identifier)
void setMaxBufferSize(int maxBufferSize)
void setOutputRange(int index)
void setSkipDuplicates(bool skipDuplicates)
void setUserOrientation(int userOrientation)
bool skipDuplicates() const
QByteArray type() const
int userOrientation() const

パブリックスロット

bool start()
void stop()

シグナル

void activeChanged()
void alwaysOnChanged()
void availableSensorsChanged()
void axesOrientationModeChanged(QSensor::AxesOrientationMode axesOrientationMode)
void bufferSizeChanged(int bufferSize)
void busyChanged()
void currentOrientationChanged(int currentOrientation)
void dataRateChanged()
void efficientBufferSizeChanged(int efficientBufferSize)
void identifierChanged()
void maxBufferSizeChanged(int maxBufferSize)
void readingChanged()
void sensorError(int error)
void skipDuplicatesChanged(bool skipDuplicates)
void userOrientationChanged(int userOrientation)

静的パブリックメンバー

QByteArray defaultSensorForType(const QByteArray &type)
QList<QByteArray> sensorTypes()
QList<QByteArray> sensorsForType(const QByteArray &type)

詳細な説明

センサーのライフサイクルは通常、以下の通りです:

  • スタックまたはヒープ上で QSensor のサブクラスを作成します。
  • アプリケーションの要件に応じてセットアップを行う。
  • 値の受信を開始します。
  • アプリケーションがセンサーデータを使用します。
  • 値の受信を停止します。

センサーデータは、QSensorReading およびそのサブクラスを介して配信されます。

向き

QAccelerometer 、QMagnetometer 、QRotationSensor など、一部のセンサーは画面の向きが変わると反応します。これらは、いわゆる「向きに対応したセンサー」です。向きに対応したセンサーの場合、QSensor は画面の向きに基づいて測定値の報告を変更することをサポートしています。

向き対応センサーの場合、axesOrientationMode プロパティによって、画面の向きが測定値にどのように影響するかが制御されます。

デフォルトモードであるQSensor::FixedOrientation では、測定値は画面の向きによる影響を受けません。QSensor::AutomaticOrientation モードでは、現在の画面の向きを考慮して測定値が自動的に回転されます。そして最後に、QSensor::UserOrientation モードでは、ユーザーが指定した向きに応じて測定値が回転されます。

この機能は、バックエンドがサポートしており、かつセンサーが向き変更可能な場合にのみ利用可能です。これは、QSensor::AxesOrientation フラグを指定してQSensor::isFeatureSupported()を呼び出すことで確認できます。

ここでいう向き(orientation)の値は、常に画面の向きであり、デバイスの向きではありません。 画面の向きとは、GUI の向きを指します。たとえば、デバイスを反時計回りに 90 度回転させた場合、画面の向きはそれを補正するために時計回りに 90 度回転し、デバイスが回転した後も GUI が正立した状態を保つようにします。 なお、アプリケーションは画面の向きをロックして、例えば縦向きや横向きモードを強制することができます。向きがロックされている場合、向き検出センサーは画面の向きの変化にのみ反応するため、デバイスの向きが変更されても読み取り値は変化しません。向き検出センサーの目的は、センサーの向きを画面の向きと同期させることにあるため、これは理にかなっています。

向き値の範囲は0度から270度です。向きは時計回りに適用されます。例えば、向き値が90度の場合、画面が元の位置から右に90度回転したことを意味し、これによりデバイスが左に90度回転したことを相殺します。

QSensorReadingも参照してください 。

メンバ型のドキュメント

enum QSensor::AxesOrientationMode

画面の向きが読み取り値にどのような影響を与えるかを説明します。

定数値説明
QSensor::FixedOrientation0読み取り値には自動回転は適用されません。
QSensor::AutomaticOrientation1表示値は、画面の向きに基づいて自動的に回転されます。
QSensor::UserOrientation2読み取り値は、userOrientation プロパティの角度に基づいて回転されます。

「QSensor::axesOrientationMode」も参照してください 。

enum QSensor::Feature

バックエンドがサポートする可能性のあるオプション機能を列挙します。

すべてのセンサータイプに共通する機能は以下の通りです:

定数値説明
QSensor::Buffering0バックエンドは、QSensor::bufferSize プロパティによって制御される、測定値のバッファリングをサポートしています。
QSensor::AlwaysOn1このバックエンドは、QSensor::alwaysOn プロパティによって制御される、アイドル時のサスペンドに関するポリシーの変更をサポートしています。
QSensor::SkipDuplicates5このバックエンドは、同一または非常に類似した連続する測定値のスキップをサポートしています。これは、QSensor::skipDuplicates プロパティをtrueに設定することで有効にできます。

QMagnetometer の機能は以下の通りです:

定数値説明
QSensor::GeoValues2バックエンドは地理座標値の返却をサポートしており、これはQMagnetometer::returnGeoValues プロパティで制御できます。

QLightSensor の機能は以下の通りです:

定数値説明
QSensor::FieldOfView3バックエンドは視野角を指定しており、これはQLightSensor::fieldOfView プロパティから読み取ることができます。

QAccelerometer の機能は以下の通りです:

定数値説明
QSensor::AccelerationMode4このバックエンドは、QAccelerometer::accelerationMode プロパティを使用して加速度センサーの加速度モードを切り替えることをサポートしています。

QPressureSensor の機能は以下の通りです:

定数値説明
QSensor::PressureSensorTemperature7バックエンドは、圧力センサーのダイ温度を提供します

すべてのオリエンタブルセンサーの機能は以下の通りです:

定数値説明
QSensor::AxesOrientation6バックエンドは、軸の向きをデフォルトのQSensor::FixedOrientation から他の値に変更することをサポートしています。

QSensor::isFeatureSupported()も参照してください 。

プロパティのドキュメント

active : bool

このプロパティは、センサーがアクティブであるかどうかを示す値を保持します。

センサーがアクティブ(値を返している)場合は true になります。それ以外の場合は false になります。

なお、この値を true に設定しても即座に反映されるわけではありません。代わりに、イベントループが実行された時点でセンサーが起動されます。

アクセス関数:

bool isActive() const
void setActive(bool active)

通知シグナル:

void activeChanged()

alwaysOn : bool

このプロパティは、画面がオフの状態でセンサーを稼働し続けるかどうかを示す値を保持します。

一部のプラットフォームでは、画面がオフになるとセンサーを一時停止するという仕様があります。このプロパティを true に設定すると、センサーが引き続き動作するようになります。

アクセス関数:

bool isAlwaysOn() const
void setAlwaysOn(bool alwaysOn)

通知シグナル:

[read-only] availableDataRates : qrangelist

このプロパティには、センサーがサポートするデータレートが格納されています。

これは、センサーが対応するデータレートのリストです。単位はヘルツです。

リスト内の項目は、離散的なレート、または連続的なレートの範囲を表すことができます。離散的なレートは、両方の値が同じであることで示されます。

なお、すべてのセンサーに動作レートがあるわけではないため、この情報は必須ではありません。そのような場合、リストは空になります。

アクセス関数:

qrangelist availableDataRates() const

関連項目: QSensor::dataRate およびqrangelist 。

axesOrientationMode : AxesOrientationMode

このプロパティは、画面の向きが値の表示にどのように影響するかを決定するモードを保持します。

デフォルトモードである「FixedOrientation 」に設定すると、測定値には自動回転が適用されません。これは、QSensor::AxesOrientation 機能をサポートしていないバックエンドで利用可能な唯一のモードです。

AutomaticOrientation に設定すると、画面の向きが変わったときに読み取り値が自動的に回転します。事実上、画面の向きは相殺されます。

例として、デバイスが180度回転し、その結果、画面の向きも本来の向きから180度回転したと仮定します。 軸の自動方向調整が有効でない場合、測定値は変化することになります。X 値と Y 値の両方が負の値となり、アプリケーション開発者はアプリケーションコード内で手動でこの負の値を相殺する必要があります。軸の自動方向調整はこれを自動的に行います。このモードでは、X 値と Y 値はデフォルトの画面向きの場合と同じになります。

この軸の自動回転は、いくつかのユースケースで便利です。例えば、加速度センサーの X 軸の値を見て、表面がどれだけ水平であるかを測定する水準器アプリケーションなどです。 デバイスや画面の向きが90度変化しても、アプリケーション開発者は何も変更する必要がなく、デバイスが回転していてもX軸の値を使い続けることができます。軸の自動回転機能がない場合、アプリケーション開発者は代わりにY軸の値を確認する必要があり、画面の向きに応じて異なる軸から値を読み取るコードをアプリケーションに追加しなければなりません。

UserOrientation モードはAutomaticOrientation と非常に似ていますが、画面の向きが自動的に決定されるのではなく、手動で制御される点が異なります。その場合、userOrientation プロパティの角度が、読み取り値の回転に使用されます。

読み取り値の回転は画面の向きに基づいているため、Z軸は画面に対して垂直であることから、Z値は決して変化しません。画面の向きは90度単位で変化するため、読み取り値の回転も90度単位で行われます。

このプロパティは、向き変更可能なセンサーでのみ使用されます。

アクセス関数:

QSensor::AxesOrientationMode axesOrientationMode() const
void setAxesOrientationMode(QSensor::AxesOrientationMode axesOrientationMode)

通知信号:

void axesOrientationModeChanged(QSensor::AxesOrientationMode axesOrientationMode)

bufferSize : int

このプロパティは、バッファのサイズを保持します。デフォルトでは、バッファサイズは 1 であり、これはバッファリングが行われないことを意味します。最大バッファサイズが 1 の場合、そのセンサーではバッファリングはサポートされていません。

bufferSizeをmaxBufferSize より大きく設定すると、maxBufferSize が使用されます。

bufferSizeが1より大きい場合、バッファリングが有効になります。センサーは要求された数のサンプルを収集し、それらを一度にアプリケーションに送信します。これらは変更された測定値のバーストとしてアプリケーションに送信されるため、アプリケーションが各測定値を直ちに処理するか、値を別の場所に保存することが特に重要です。

バッファリングが進行中にstop()が呼び出された場合、バッファに蓄積された一部のデータはアプリケーションに送信されません。

バッファリングオプションを指定してセンサーを起動した場合、その時点から値の収集が開始されます。利用可能な既存のバッファは存在しません。

一部のバックエンドでは、バッファの有効化または無効化のみをサポートしており、サイズを制御することはできません。この場合、バッファリングがサポートされていても、maxBufferSize およびefficientBufferSize プロパティはまったく設定されない可能性があります。bufferSize プロパティを 1 より大きい値に設定すると、バッファリングが有効になります。 センサーの起動後、bufferSizeプロパティはバックエンドによって実際の値に設定されます。

アクセス関数:

int bufferSize() const
void setBufferSize(int bufferSize)

通知シグナル:

void bufferSizeChanged(int bufferSize)

QSensor::maxBufferSize およびQSensor::efficientBufferSizeも参照してください 。

[read-only] busy : bool

このプロパティは、センサーがビジー状態であるかどうかを示す値を保持します。

システム上にセンサーが存在していても、使用できない場合があります。センサーがビジー状態の場合、この関数は true を返します。その場合、start() を実行することはできません。

なお、この関数は、自身がそのセンサーを使用している場合には true を返さず、別のプロセスがそのセンサーを使用している場合にのみ true を返します。

アクセス関数:

bool isBusy() const

通知シグナル:

void busyChanged()

busyChanged()も参照してください 。

[read-only] connectedToBackend : bool

このプロパティは、センサーがバックエンドに接続されているかどうかを示す値を保持しています。

バックエンドに接続されていないセンサーは、有用な処理を行うことができません。

connectToBackend() メソッドを呼び出すと、センサーを直ちにバックエンドに接続させることができます。start() を呼び出すと、このメソッドは自動的に呼び出されるため、センサーのプロパティにアクセスする必要がある場合(つまり、センサーを使用する前にそのメタデータをポーリングする場合など)にのみ、この操作を行う必要があります。

アクセス関数:

bool isConnectedToBackend() const

[read-only] currentOrientation : int

このプロパティは、測定値を回転させる際に使用される現在の向きを保持します。

これは画面の向きとは異なる場合があります。たとえば、「FixedOrientation 」モードでは、測定値は回転されないため、このプロパティの値は 0 になります。

「UserOrientation 」モードでは、userOrientation プロパティに基づいて測定値が回転されるため、このプロパティはuserOrientation プロパティと同じ値になります。

AutomaticOrientation モードでは、測定値は画面の向きに基づいて回転されるため、このプロパティは現在の画面の向きと同じ値になります。

このプロパティはバックエンドによって設定され、向きを検知可能なセンサーでのみ有効です。

アクセス関数:

int currentOrientation() const

通知信号:

void currentOrientationChanged(int currentOrientation)

dataRate : int

このプロパティには、センサーを動作させるべきデータレートが格納されています。

単位はヘルツです。

データレートとは、センサーが変化を検出できる最大周波数のことです。

このプロパティの設定は移植性がなく、他のアプリケーションとの競合を引き起こす可能性があります。複数のアプリケーションがデータレートを要求する場合のポリシーについては、センサーのバックエンドおよびプラットフォームのドキュメントを確認してください。

デフォルト値 (0) は、アプリがデータレートを問わないことを意味します。プラットフォームは 1 秒間に数百回更新を行う場合があるため、アプリケーションでは、タイマーベースの現在の値のポーリングを使用するか、値を処理するコードが非常に高速に実行されるようにする必要があります。

センサーは実行中にこの値の変更を認識しない可能性があるため、start() を呼び出す前にこの設定を行う必要があります。

なお、プラットフォームが現在使用しているデータレートを判別する仕組みは存在しません。

アクセス関数:

int dataRate() const
void setDataRate(int rate)

通知シグナル:

void dataRateChanged()

QSensor::availableDataRatesも参照してください 。

[read-only] description : QString

このプロパティには、センサーに関する説明文字列が格納されます。

アクセス関数:

QString description() const

[read-only] efficientBufferSize : int

このプロパティは、最も効率的なバッファサイズを保持します。通常、この値は 1 です(つまり、特に効率的なサイズはないことを意味します)。一部のセンサドライバには FIFO バッファが搭載されており、FIFO のサイズ分の読み取り値を一度に送信する方が効率的です。

アクセス関数:

int efficientBufferSize() const

通知信号:

void efficientBufferSizeChanged(int efficientBufferSize)

関連項目: QSensor::bufferSize およびQSensor::maxBufferSize 。

[read-only] error : int

このプロパティには、センサーに最後に設定されたエラーコードが格納されます。

なお、エラーコードはセンサーごとに異なります。

アクセス関数:

int error() const

通知信号:

void sensorError(int error)

identifier : QByteArray

このプロパティには、センサーのバックエンド識別子が格納されます。

なお、この識別子は、センサーがバックエンドに接続されると自動的に設定されます。特定のバックエンドに接続したい場合は、connectToBackend() を呼び出す前に setIdentifier() を呼び出す必要があります。

アクセス関数:

QByteArray identifier() const
void setIdentifier(const QByteArray &identifier)

Notifierシグナル:

void identifierChanged()

[read-only] maxBufferSize : int

このプロパティは、最大バッファサイズを保持します。

なお、この値が 1 の場合、センサーはいかなる形式のバッファリングもサポートしていないことに注意してください。その場合、isFeatureSupported (QSensor::Buffering )も false を返します。

アクセス関数:

int maxBufferSize() const

通知シグナル:

void maxBufferSizeChanged(int maxBufferSize)

QSensor::bufferSize およびQSensor::efficientBufferSizeも参照してください 。

outputRange : int

このプロパティには、センサーが使用している出力範囲が格納されています。

この値は、使用するQSensor::outputRanges リスト内のインデックスを表します。

このプロパティの設定は移植性がなく、他のアプリケーションとの競合を引き起こす可能性があります。複数のアプリケーションが出力範囲を要求する場合のポリシーについては、センサーのバックエンドおよびプラットフォームのドキュメントを確認してください。

デフォルト値 (-1) は、アプリが出力範囲を問わないことを意味します。

プラットフォームが現在使用している出力範囲を特定するメカニズムはないことに注意してください。

アクセス関数:

int outputRange() const
void setOutputRange(int index)

「QSensor::outputRanges」も参照してください 。

[read-only] outputRanges : qoutputrangelist

このプロパティには、センサーがサポートする出力範囲のリストが格納されています。

1つのセンサーに複数の出力範囲が設定されている場合があります。通常、これは精度を犠牲にする代わりに、より広い測定範囲を確保するために行われます。

なお、この情報は必須ではありません。通常、この情報は出力範囲が選択可能なセンサー(一般的な加速度センサーなど)でのみ利用可能です。

アクセス関数:

qoutputrangelist outputRanges() const

関連項目: QSensor::outputRange およびqoutputrangelist 。

[read-only] reading : QSensorReading*

このプロパティは、読み取りクラスを保持します。

readingクラスは、センサーの測定値へのアクセスを提供します。readingオブジェクトは、受信された最新のセンサー測定値を一時的に保持するキャッシュであるため、アプリケーションは測定値を直ちに処理するか、後で処理するためにどこかに値を保存する必要があります。

なお、センサーバックエンドがバックエンドに接続されるまでは、このメソッドは 0 を返します。

また、start() が呼び出されても、読み取り値はすぐには利用できない点にも注意してください。アプリケーションは、readingChanged() シグナルが発信されるまで待機する必要があります。

アクセス関数:

QSensorReading *reading() const

通知シグナル:

isConnectedToBackend() およびstart()も参照してください 。

skipDuplicates : bool

重複する測定値を省略するかどうかを示します。

重複スキップが有効になっている場合、同じ値または非常に類似した値の連続した測定値は省略されます。これにより、利用可能なセンサー測定値の数が減るため、処理負荷を軽減できます。その結果、測定値の到着間隔は不規則になります。

重複スキップは、値が完全に同一の測定値だけでなく、非常に類似した測定値に対しても有効になります。これは、デバイスが動いていなくても各センサーには多少のジッターが生じるためです。

このプロパティのサポートはバックエンドによって異なります。isFeatureSupported() を使用して、現在のプラットフォームでサポートされているかどうかを確認してください。

重複スキップはデフォルトで無効になっています。

重複スキップはセンサーの起動時に有効になります。センサーがアクティブな状態でこのプロパティを変更しても、即座には反映されません。

アクセス関数:

bool skipDuplicates() const
void setSkipDuplicates(bool skipDuplicates)

通知シグナル:

void skipDuplicatesChanged(bool skipDuplicates)

[read-only] type : const QByteArray

このプロパティには、センサーの型が格納されます。

アクセス関数:

QByteArray type() const

userOrientation : int

このプロパティは、UserOrientation モードで読み取り値を回転させる際に使用される角度を保持します。

axesOrientationMode プロパティがUserOrientation に設定されている場合、読み取り値を回転させる角度はこのプロパティから取得されます。その他のモードでは、このプロパティは効果を持ちません。

デフォルト値は 0 です。有効な値は 0、90、180、270 のみです。これらは、画面の向きとして可能な角度のみだからです。

このプロパティは、向きを変更可能なセンサーでのみ有効です。

アクセス関数:

int userOrientation() const
void setUserOrientation(int userOrientation)

通知シグナル:

void userOrientationChanged(int userOrientation)

メンバ関数のドキュメント

[explicit] QSensor::QSensor(const QByteArray &type, QObject *parent = nullptr)

type センサーを、parent の子として構築します。

特定のセンサータイプに対して派生クラスが存在する場合は、このコンストラクタを使用しないでください。

間違った方法は、基底クラスのコンストラクタを使用することです:

QSensor *magnetometer = new QSensor(QMagnetometer::sensorType, this);

正しい方法は、派生クラスのインスタンスを作成することです:

QMagnetometer *magnetometer = new QMagnetometer(this);

派生クラスには、QMagnetometer のジオ値サポートやQAccelerometer の加速度モードサポートといった特定の機能に必要な、追加のプロパティやデータメンバーが含まれています。これらの機能は、QSensor のサブクラスからセンサーインスタンスを作成した場合にのみ正常に動作します。

このコンストラクタは、派生センサークラスが利用できない場合にのみ使用してください。すべての組み込みセンサーには派生クラスが存在するため、このコンストラクタの使用が必要となるのは、カスタムセンサーを実装する場合に限られることに注意してください。

[virtual noexcept] QSensor::~QSensor()

センサーを破壊する。センサーがまだ停止していない場合は、停止させる。

[signal] void QSensor::activeChanged()

このシグナルは、QSensor::active プロパティが変更されたときに発火します。

注: プロパティ `active` に関する通知 シグナルです。

「QSensor::active」も参照してください 。

void QSensor::addFilter(QSensorFilter *filter)

センサーにfilter を追加します。

センサーはフィルタの所有権を取得しません。QSensorFilter は、自身が破棄された場合にセンサーに通知します。

「QSensorFilter」も参照してください 。

[signal] void QSensor::alwaysOnChanged()

このシグナルは、alwaysOn プロパティが変更されたときに発火します。

注: プロパティ `alwaysOn` に対する通知 シグナルです。

[signal] void QSensor::availableSensorsChanged()

このシグナルは、利用可能なセンサーのリストが変更されたときに発信されます。プログラムが利用可能なセンサーは、通常、時間の経過とともに変化することはありませんが、利用可能なセンサーの中には、常時接続されていないハードウェアを表すものもあります。たとえば、Bluetooth経由で接続されたゲームコントローラは、電源が入っていると利用可能になり、電源が切れると利用不可能になります。

QSensor::sensorTypes() およびQSensor::sensorsForType()も参照してください 。

[signal] void QSensor::busyChanged()

この信号は、センサーがビジー状態を解除したときに発信されます。これにより、センサーが利用可能になった時点でそのセンサーを取得することができます。

sensor.start();
if (sensor.isBusy()) {
    // need to wait for busyChanged signal and try again
}

注: プロパティ `busy` に対する通知 信号です。

[invokable] bool QSensor::connectToBackend()

センサーバックエンドへの接続を試みます。

適切なバックエンドが見つかった場合は true を返し、見つからなかった場合は false を返します。

QSensor を直接使用している場合は、このメソッドを呼び出す前に型を設定しておく必要があります。

注:この関数は 、メタオブジェクトシステムを介して、また QML から呼び出すことができます。Q_INVOKABLE を参照してください。

isConnectedToBackend()も参照してください 。

[static] QByteArray QSensor::defaultSensorForType(const QByteArray &type)

type のデフォルトのセンサー識別子を返します。これは設定ファイルで設定されており、必要に応じて上書きすることができます。デフォルトが設定されていない場合、システムはtype に対して最初に登録されたセンサーを返します。

なお、同じタイプに対して別のバックエンドが登録されている場合、汎用プラグインのバックエンドがデフォルトにならないようにする特別なロジックが存在することに注意してください。このロジックにより、generic. で始まるバックエンド識別子は、そのタイプに対して他のバックエンドが登録されていない場合、またはSensors.conf で指定されている場合にのみ、デフォルトとなります。

「タイプのデフォルトセンサーの決定」も参照してください 。

QList<QSensorFilter *> QSensor::filters() const

そのセンサーに現在適用されているフィルタを返します。

QSensorFilterも参照してください 。

[invokable] bool QSensor::isFeatureSupported(QSensor::Feature feature) const

バックエンドが特定の機能をサポートしているかどうかを確認します。

QtSensors センサーの制御や情報提供のための豊富なAPIをサポートしています。当然ながら、これらの機能のすべてがすべてのバックエンドでサポートされるわけではありません。

現在のバックエンドが機能feature をサポートしているかどうかを確認するには、この関数を呼び出します。

バックエンドに接続されている必要があります。そうでない場合は false が返されます。connectToBackend() またはstart() を呼び出すと、バックエンドへの接続が確立されます。

この機能を動作させるには、バックエンドがQSensorBackend::isFeatureSupported() を実装している必要があります。

バックエンドが接続されている場合は、その機能がサポートされているかどうかを返し、接続されていない場合は false を返します。

注:この関数は 、メタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

[signal] void QSensor::readingChanged()

このシグナルは、新しいセンサーの測定値が受信されたときに発せられます。

センサーの測定値は、QSensor::reading プロパティで確認できます。なお、この測定値オブジェクトは、受信された最新のセンサー測定値を一時的に保持するキャッシュであるため、アプリケーションでは測定値を直ちに処理するか、後で処理するためにどこかに値を保存する必要があります。

このシグナルが初めて発火されるまでは、reading オブジェクトのデータは初期化されていません。

注: プロパティ `reading` に対するNotifier シグナル。

start()も参照してください 。

void QSensor::removeFilter(QSensorFilter *filter)

センサーからfilter を取り外してください。

「QSensorFilter」も参照してください 。

[signal] void QSensor::sensorError(int error)

このシグナルは、センサーにerror コードが設定されたときに発生します。一部のエラーによりセンサーが動作を停止する場合があることに注意してください。センサーがまだ動作しているかどうかを確認するには、isActive()を呼び出す必要があります。

注: プロパティ `error` に対する通知 信号です。

[static] QList<QByteArray> QSensor::sensorTypes()

すべてのセンサータイプのリストを返します。

[static] QList<QByteArray> QSensor::sensorsForType(const QByteArray &type)

type の各センサーの ID のリストを返します。そのタイプのセンサーが利用できない場合は、リストは空になります。

void QSensor::setCurrentOrientation(int currentOrientation)

現在の画面の向きをcurrentOrientation に設定します。これは、画面の向きまたはuserOrientation プロパティが変更されるたびに、バックエンドから呼び出されるものです。

currentOrientation()も参照してください 。

void QSensor::setEfficientBufferSize(int efficientBufferSize)

効率的なバッファサイズをefficientBufferSize に設定します。これはバックエンド側から呼び出す必要があります。

efficientBufferSize()も参照してください 。

void QSensor::setMaxBufferSize(int maxBufferSize)

バッファの最大サイズをmaxBufferSize に設定します。これはバックエンドから呼び出されるものです。

maxBufferSize()も参照してください 。

void QSensor::setSkipDuplicates(bool skipDuplicates)

重複スキップを「skipDuplicates 」に設定します。

注: プロパティ `skipDuplicates`のセッター 関数です。

skipDuplicates()も参照してください 。

[signal] void QSensor::skipDuplicatesChanged(bool skipDuplicates)

このシグナルは、skipDuplicates プロパティが変更されたときに発生します。

注: プロパティ `skipDuplicates` に対する通知 シグナルです。

[slot] bool QSensor::start()

センサーからの値の取得を開始します。センサーが起動された場合は true を返し、そうでない場合は false を返します。

センサーの起動に失敗する理由はいくつかあります。

アプリケーションがセンサーを起動した後、センサーの値を照会できるようになるには、センサーが新しい値を受信するまで待機する必要があります。これは、センサーがシステムから値を受信する仕組みによるものです。センサーは(一般的に)新しい値をポーリングして取得するのではなく、新しい値が発生した時点でセンサーにプッシュされます。

たとえば、次のコードは意図したとおりに動作しません。

sensor->start();
sensor->reading()->x(); // no data available

正しく動作させるには、測定値にアクセスするコード内で、readingChanged() シグナルが発行されていることを確認する必要があります。

    connect(sensor, SIGNAL(readingChanged()), this, SLOT(checkReading()));
    sensor->start();
}
void MyClass::checkReading() {
    sensor->reading()->x();

QSensor::busyも参照してください 。

[slot] void QSensor::stop()

センサーからの値の取得を停止します。

これにより、センサーが解放され、他のプロセスがそれを使用できるようになります。

「QSensor::busy」も参照してください 。

関連する非メンバー

[alias] qoutputrangelist

この型は、qoutputrange 値のリストとして定義されています。

typedef QList<qoutputrange> qoutputrangelist;

QList 、qoutputrange 、およびQSensor::outputRangesも参照してください 。

[alias] qrange

この型は、QPair として定義されています。

typedef QPair<int,int> qrange;

QPair 、qrangelist 、およびQSensor::availableDataRatesも参照してください 。

[alias] qrangelist

この型は、qrange 値のリストとして定義されています。

typedef QList<qrange> qrangelist;

QList 、qrange 、およびQSensor::availableDataRatesも参照してください 。

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