C
MouseArea QML Type
シンプルなタッチ操作を可能にする。もっと見る...
| Import Statement: | import QtQuick |
| Since: | Qt Quick Ultralite 1.0 |
| Inherits: |
プロパティ
- mouseX : real
- mouseY : real
- pressAndHoldInterval : int
- pressed : bool
(since Qt Quick Ultralite 1.1)
信号
- canceled()
(since Qt Quick Ultralite 1.1) - clicked(MouseEvent mouse)
- positionChanged(MouseEvent mouse)
- pressAndHold(MouseEvent mouse)
(since Qt Quick Ultralite 1.1) - pressed(MouseEvent mouse)
(since Qt Quick Ultralite 1.1) - released(MouseEvent mouse)
(since Qt Quick Ultralite 1.1)
詳細説明
MouseArea は不可視のアイテムで、通常、可視のアイテムと共に使用され、そのアイテムのタッチハンドリングを提供します。効果的にプロキシとして動作することで、タッチ処理のロジックをMouseAreaアイテム内に含めることができます。
enabled プロパティは、プロキシされたアイテムのタッチハンドリングの有効/無効に使用されます。無効にすると、領域はタッチ イベントに対して透明になります。
MouseAreaは不可視アイテムですが、visibleプロパティを持っています。falseに設定すると、領域はタッチイベントに対して透明になる。
pressed read-onlyプロパティは、ユーザがマウス領域上で押下しているかどうかを示す。このプロパティは、ユーザーインターフェイスのプロパティ間のバインディングでよく使用されます。
タッチ位置と押された状態に関する情報は、イベントハンドラプロパティが定義されているシグナルを介して提供される。最も一般的に使用されるのは、onClicked、onPressed、onReleased、onPressAndHoldといった、タッチ押下の処理です。
MouseAreaが他のMouseAreaアイテムの領域と重なっている場合、一番上の領域だけがイベントを受け取ります。
使用例

次の例では、Rectangle の MouseArea を使用しています。タップすると、Rectangle の色が赤に変わります:
import QtQuick 2.15
Rectangle {
width: 100; height: 100
color: "green"
MouseArea {
anchors.fill: parent
onClicked: { parent.color = 'red' }
}
}多くのMouseAreaシグナルは、位置などのタッチイベントに関する追加情報を含むmouse パラメータを渡します。
ここでは、押された時間が長い場合に異なる色を生成する、前の例の拡張を示します:
Rectangle {
width: 100; height: 100
color: "green"
MouseArea {
anchors.fill: parent
onClicked: {
if (mouse.wasHeld)
parent.color = 'blue';
else
parent.color = 'red';
}
}
}MouseEventも参照してください 。
プロパティのドキュメント
これらのプロパティはタッチの座標を保持する。
これらのプロパティはタッチが押されている間のみ有効で、タッチが持続している限り、たとえタッチが領域外に移動しても有効であり続ける。
座標はMouseArea からの相対座標です。
pressAndHoldInterval : int
このプロパティは、pressAndHold が発信されるまでの経過時間をミリ秒単位でオーバーライドします。
デフォルトでは800msです。
pressAndHoldも参照のこと 。
pressed : bool [since Qt Quick Ultralite 1.1]
このプロパティは、現在タッチが行われているかどうかを保持する。
このプロパティはQt Quick Ultralite 1.1 で導入されました。
シグナルのドキュメント
[since Qt Quick Ultralite 1.1] canceled()
このシグナルは、タッチイベントの処理が別のアイテムに奪われ、タッチイベントが キャンセルされたときに発行される。
このシグナルは上級者向けです。入力を処理するMouseArea が複数ある場合や、Flickable の中にMouseArea がある場合に便利です。後者の場合、onPressed シグナルハンドラで何らかのロジックを実行してからドラッグを開始すると、Flickable がMouseArea からタッチ処理を奪います。このような場合、MouseArea がFlickable にタッチ処理を奪われたときにロジックをリセットするには、released に加えてcanceled も処理する必要があります。
注: 対応するハンドラはonCanceled 。
このシグナルはQt Quick Ultralite 1.1で導入された。
clicked(MouseEvent mouse)
この信号はクリックがあると発せられる。クリックとは、押した後に離すことで、どちらもMouseArea (押した後、MouseArea の外側に移動し、再び内側に移動して離すこともクリックとみなされる)。
mouse パラメーターは、クリックを離したxとyの位置、クリックが保持されたかどうかなど、クリックに関する情報を提供する。
このシグナルを処理する際、mouse パラメータのaccepted プロパティを変更しても効果はありません。
注: 対応するハンドラはonClicked です。
positionChanged(MouseEvent mouse)
このシグナルはタッチ位置が変化したときに発せられる。
mouse パラメータには、xとyの位置を含むタッチに関する情報が提供される。
このシグナルは押下された場合のみ発せられる。
このシグナルを処理する際、mouse パラメータのaccepted プロパティを変更しても効果はありません。
注: 対応するハンドラはonPositionChanged です。
[since Qt Quick Ultralite 1.1] pressAndHold(MouseEvent mouse)
このシグナルは長押し(現在800ms)されたときに発せられる。mouse パラメーターは、押された位置のxとyを含む、押された位置に関する情報を提供する。
このシグナルを処理する際、mouse パラメータのaccepted プロパティを変更しても効果はありません。
注: 対応するハンドラはonPressAndHold 。
このシグナルはQt Quick Ultralite 1.1 で導入された。
[since Qt Quick Ultralite 1.1] pressed(MouseEvent mouse)
このシグナルは、プレスがあったときに発せられる。mouse パラメータは、xとyの位置を含む、押下に関する情報を提供する。
このシグナルを処理する場合、mouse パラメータのaccepted プロパティを使用して、このMouseArea が押されたイベントと、押された後離されるまでのすべてのタッチイベントを処理するかどうかを制御します。デフォルトはイベントを受け入れ、このMouseAreaの下にある他のMouseAreaがイベントを処理することを許可しません。acceptedをfalseに設定すると、次にボタンが押されるまで、それ以降のイベントはこのMouseArea 。
注意: 対応するハンドラはonPressed です。
このシグナルはQt Quick Ultralite 1.1で導入されました。
[since Qt Quick Ultralite 1.1] released(MouseEvent mouse)
このシグナルはリリースがあったときに発せられる。mouse パラメータは、クリックがリリースされた x と y の位置、クリックが保持されたかどうかなど、クリックに関する情報を提供する。
このシグナルを処理する際、mouse パラメータのaccepted プロパティを変更しても効果はありません。
注: 対応するハンドラはonReleased です。
このシグナルはQt Quick Ultralite 1.1で導入されました。
canceledも参照してください 。
特定の Qt ライセンスの下で利用可能です。
詳細を確認してください。