2

MultiPointTouchArea を機能させようとしています... QT で本当に基本的な例を見つけました:

http://qt-project.org/doc/qt-5.0/qtquick/qml-qtquick2-multipointtoucharea.html

import QtQuick 2.0

Rectangle {
width: 400; height: 400
MultiPointTouchArea {
    anchors.fill: parent
    touchPoints: [
        TouchPoint { id: point1 },
        TouchPoint { id: point2 }
    ]
}

Rectangle {
    width: 30; height: 30
    color: "green"
    x: point1.x
    y: point1.y
}

Rectangle {
    width: 30; height: 30
    color: "yellow"
    x: point2.x
    y: point2.y
}
}

しかし、マウスを動かしても何も起こりません...位置は常に x = 0、y = 0です。領域はマウス/タッチ イベントに対して透明になります。」MultiPointTouchArea は無効になっていないので、動作するはずですか? それとも私が間違っていますか?

4

1 に答える 1

2

Android タブレットでコードをそのまま試してみましたが、問題なく動作します。最初の指のコントロールは緑の四角形を動かし、2 本目の指は黄色の四角形を動かします。私はQt 5.4を使用しています(現時点で最新のもの)

この例をタブレットまたはデスクトップ コンピューターで実行していますか? 通常のマウスを使用してデスクトップを使用している場合、マウスの左ボタンを押している間のみ、緑色の四角形を移動できます。タッチを使用するには、マウスを押す必要があります。

正確に何を達成しようとしていますか?本当に必要なのは、hoverEnabled が true に設定された MouseArea のようです。

これを試して:

import QtQuick 2.0

Rectangle {
    width: 400; height: 400

    property point point1;
    property point point2;

    MouseArea {
        anchors.fill: parent
        hoverEnabled: true

        onPositionChanged: {
            if (pressed)
            {
                parent.point1.x = mouse.x;
                parent.point1.y = mouse.y;
            }
            else
            {
                parent.point2.x = mouse.x;
                parent.point2.y = mouse.y;
            }
        }
    }

    Rectangle {
        width: 30; height: 30
        color: "green"
        x: parent.point1.x
        y: parent.point1.y
    }

    Rectangle {
        width: 30; height: 30
        color: "yellow"
        x: parent.point2.x
        y: parent.point2.y
    }
}
于 2014-12-24T14:46:15.847 に答える