2013-12-17 60 views
9

マルチタッチデスクトップアプリケーションを作成しようとしています。私はQMLベースのアプリケーションを持っており、今では複数のQML要素を同時にドラッグしようとしています。マルチタッチQt 5.1アプリケーションを作成

私はMultiPointTouchAreaを使用しようとしましたが、これは機能しません。だから私は2つの要素を持っています。たとえば、2人の写真があります。同時に2人の人がドラッグ可能でなければなりません。

MultiPointTouchAreaを含む矩形を定義し、各ピクチャにtouchPointをリンクすると、最初のタッチイベントは最初のピクチャを移動し、2番目のタッチイベントは2番目のピクチャを移動します。この例のコードのように

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 
    } 
} 

これは私が探しているものではありません。お互いを邪魔することなく、タッチイベントの順序なしに、同時にタッチしてドラッグすると、それらを動かすようにします。 これはqmlで可能ですか?または、C++関数をコード化する必要がありますか?

私の問題を理解していただければ幸いです。

答えて

2

私はMultiPointTouchAreaに新たなんだといくつかの調査をやって、にあなたが持っていることが表示されます動的に最初にポイント(I)を割り当てる長方形(J)に触れました。あなたがそうしているので、ポイント2に従いますので、(黄)

x: point1.x 
    y: point1.y 

長方形をしているので、

長方形(緑)POINT1に従います:あなたの例では

は、あなたは静的割り当てを行っています

x: point2.x 
    y: point2.y 

--->グリーン長方形がポイント1に従うことはありませんし、黄色の1はポイント2

に従うことはありません0

MultiPointTouchAreaには、定義したタッチポイントの配列、最初のタッチポイントで表示される最初のタッチジェスチャなどがあります。

タッチポイントの状態(押された...)、矩形の状態(いくつかのブール値のプロパティを追加する)をチェックし、割り当てを行う機能やハッキングを行う必要があります。

希望があれば、これは幸運を助けます。

+0

QMLコードの例を最小限に増やすことができれば、これはかなり良い答えになるでしょう。 – hyde

関連する問題