このページでは

C

MouseArea QML Type

シンプルなタッチ操作を可能にします。詳細...

Import Statement: import QtQuick
Since: Qt Quick Ultralite 1.0
Inherits:

Item

プロパティ

シグナル

詳細説明

MouseArea は、通常、表示されているアイテムと組み合わせて使用され、そのアイテムに対するタッチ処理を実現するための非表示のアイテムです。MouseArea アイテムは事実上のプロキシとして機能することで、タッチ処理のロジックをその内部に閉じ込めることができます。

enabled プロパティは、プロキシ対象のアイテムに対するタッチ処理を有効または無効にするために使用されます。無効にすると、その領域はタッチイベントに対して透過状態になります。

MouseAreaは非表示のアイテムですが、visibleプロパティを持っています。これをfalseに設定すると、その領域はタッチイベントに対して透過状態になります。

pressed という読み取り専用プロパティは、ユーザーがマウスエリア上で押下しているかどうかを示します。このプロパティは、ユーザーインターフェース内のプロパティ間のバインディングで頻繁に使用されます。

タッチ位置や押下状態に関する情報は、イベントハンドラプロパティが定義されたシグナルを通じて提供されます。最も一般的に使用されるのは、タッチ押下を処理する 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」も参照してください

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

mouseX : real

mouseY : real

これらのプロパティには、タッチの座標が格納されています。

これらのプロパティは、押下中のみ有効であり、タッチが継続している限り、たとえ領域の外に移動した場合でも有効なままとなります。

座標は、MouseArea を基準としています。

pressAndHoldInterval : int

このプロパティは、pressAndHold が発行されるまでの経過時間(ミリ秒単位)を上書きします。

デフォルトでは、この値は 800ms です。

pressAndHold」も参照してください

pressed : bool [since Qt Quick Ultralite 1.1]

このプロパティは、現在タッチ操作が行われているかどうかを表します。

このプロパティは、Qt Quick のUltralite 1.1で導入されました。

Signal ドキュメント

[since Qt Quick Ultralite 1.1] canceled()

このシグナルは、別のアイテムがタッチイベントの処理を横取りしたために、タッチイベントがキャンセルされた際に発火します。

このシグナルは高度な用途向けです。複数のMouseArea が入力を処理している場合や、Flickable 内にMouseArea が存在する場合に役立ちます。 後者の場合、onPressed シグナルハンドラで何らかのロジックを実行してからドラッグを開始すると、FlickableMouseArea からタッチ処理を奪います。このような場合、MouseAreaFlickable にタッチ処理を奪われた際にロジックをリセットするには、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 ライセンスで利用可能です。
詳細はこちらをご覧ください。