2012-01-04 9 views
4

QMLオブジェクトからQMLオブジェクトにMouseイベントを送信する必要があります。例えば、マウスイベントをQMLオブジェクトに送信

Rectangle 
{ 
    id: rect 
    MouseArea 
    { 
    anchors.fill: parent 
    onClicked: console.log(mouse.x + ', ' + mouse.y) 
    } 

    Rectangle 
    { 
    x: 0; y: 0; width: 50; height: 50 
    color: 'red' 
    onClicked: rect.click(randomX(), randomY()) // <---- HERE 
    } 
} 

私はラインがMouseAreaに渡されますrectのためのクリックイベントを引き起こすために、「HERE」マークたいと思います。

答えて

3

見てみてください、あなたの質問とthis question

の間に何らかの関係があるようです。

import QtQuick 1.0 

Rectangle { 
     width: 360 
     height: 360 

     MouseArea { 
       anchors {fill: parent; margins: 40} 
       onClicked: console.log("hello from below"); 
     } 

     MouseArea { 
       id: mouseArea 
       anchors.fill: parent 

       onClicked: { 
         console.log("hello from top") 
         forwardEvent(mouse, "clicked"); 
       } 

       function forwardEvent(event, eventType) { 
         mouseArea.visible = false 
         var item = parent.childAt(event.x, event.y) 
         mouseArea.visible = true 
         if (item && item != mouseArea && typeof(item[eventType]) == "function") { 
           item[eventType](event); 
         } 
       } 
     } 
} 
+0

私の場合、 'childAt()'関数が正しい解決策であるようです。ありがとう! – Dan

+5

リンクが無効です。たぶんいくつかの情報を追加しますか? –

+1

@LennartRollandは、情報 – RvdK

関連する問題