Obsolete Members for MouseEvent

QMLのMouseEvent型の以下のメンバは非推奨です。これらは古いソースコードを動作させるために用意されています。新しいコードでは使用しないことを強くお勧めします。

プロパティ

  • source : int (deprecated in 6.2)

プロパティの説明

source : int [read-only, deprecated in 6.2]

このプロパティはQtQuick 6.2以降非推奨です。新しいコードでは使用しないことを強くお勧めします。

入力ハンドラはacceptedDevices を設定して使用してください。

このプロパティは、マウスイベントのソースを保持します。

マウスイベントのソースは、本物のマウスイベントと人工的なマウスイベントを区別するために使用できます。タッチスクリーンやグラフィックタブレットのような他のポインティングデバイスを使用する場合、アプリケーションが実際のタッチイベントやタブレットイベントを使用しない場合、マウスイベントはオペレーティングシステムやQt自身によって合成される可能性があります。

値は以下のいずれかになります:

  • Qt.MouseEventNotSynthesized - 最も一般的な値です。このような情報が利用可能なプラットフォームでは、この値は、イベントがシステムからの本物のマウスイベントを表していることを示します。
  • Qt.MouseEventSynthesizedBySystem - マウスイベントが、プラットフォームによってタッチまたはタブレットイベントから合成されたことを示します。
  • Qt.MouseEventSynthesizedByQt - マウスイベントが Qt によって未処理のタッチまたはタブレットイベントから合成されたことを示します。
  • Qt.MouseEventSynthesizedByApplication - マウスイベントがアプリケーションによって合成されたことを示します。これにより、アプリケーションによって生成されたマウス・イベントを、システムから来たものやQtによって合成されたものと区別することができます。

例えば、実際のマウスから来るイベントだけに反応させることができます:

MouseArea {
    onPressed: (mouse)=> {
        if (mouse.source !== Qt.MouseEventNotSynthesized)
            mouse.accepted = false
    }

    onClicked: doSomething()
}

押下イベントのハンドラがイベントを拒否した場合、イベントはさらに伝播され、その下にある別のItemがタッチスクリーンからの合成イベントを処理できます。例えば、Flickable がその下で使用されている場合(MouseArea は Flickable の子ではない)、MouseArea が本物のマウスイベントを処理する一方、タッチイベントがその下の Flickable に落ちるようにすることで、タッチスクリーンでフリックする機能を保持することができます。この場合、マウスを使ってFlickableをドラッグする機能は失われますが、Flickableがマウスホイールイベントを受け取ることは妨げられません。


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