Quantcast
Channel: Qt DevNet forums: Qt Quick 1283365070**
Viewing all articles
Browse latest Browse all 4972

Find all mouse areas and assign click event

$
0
0
I have a row with several mouse areas, see the QML-code below. When the page has been loaded I want to assign what will happen on each click via javascript. I have two questions: Now I put all mouse areas in an array with the id of the mouse area. Could I do something more clever and find all mouse areas in the row (via childrenAt or similar)? Now when I click on an area it seems that always the last mouse area has been click (the last value of outputString is always used). How do I solve this? import QtQuick 1.1   Rectangle {     width: 360     height: 360       Row {         id: masterRow         x: 0         y: 0           Rectangle {             width: 100             height: 100             color: "red"               MouseArea {                 id: mouseAreaRed                 anchors.fill: parent             }         }           Rectangle {             width: 100             height: 100             color: "yellow"               MouseArea {                 id: mouseAreaYellow                 anchors.fill: parent             }         }           Rectangle {             width: 100             height: 100             color: "green"               MouseArea {                 id: mouseAreaGreen                 anchors.fill: parent             }         }     }       Component.onCompleted:     {         var areas = [];         //I don't like this.         areas.push(mouseAreaRed);         areas.push(mouseAreaYellow);         areas.push(mouseAreaGreen);           for(var i=0; i<areas.length; i++)         {             var area = areas[i];             var outputString = "Mouse area " + i + " was clicked.";             area.clicked.connect( function()             {                 //Bug: outputString is only correct for the last item.                 console.log(outputString);             });         }     } }

Viewing all articles
Browse latest Browse all 4972

Latest Images

Trending Articles



Latest Images