2016-12-25 6 views
1

Я пытался сделать границу с MapPolygon Clickable в QML следующим кодом:Создание границы из Mappolygon Clickable - QML

MapPolygon{ 
     id: _poly 
     border.color: "black" 
     border.width: 4 
     color: "transparent" 
     visible: false 
     path: [] 
     MouseArea{ 
      id: _polyMousearea 
      anchors.fill: _poly.border 
      acceptedButtons: Qt.LeftButton 
      onClicked: { 
       var coord = _map.toCoordinate(Qt.point(flightMapMouseArea.mouseX,flightMapMouseArea.mouseY)) 
console.log(coord) 

       } 

      } 
     } 

    } 

Я получаю следующее сообщение об ошибке:

Невозможно назначить QDeclarativeMapLineProperties в QQuickItem на линии: anchors.fill: _poly.border

Любой способ обойти эту ошибку и сделать границу кликабельной?

Благодаря

ответ

0

Якорь используется для позиционирования QtQuick Item объектов по отношению к другому, border этому элементу, очевидно, не является сам элемент, просто нормальная сгруппированной собственность.

Предполагая, что path содержит параметр QtQuick Path один у вас есть, чтобы сделать MouseArea заполнить весь элемент, а затем использовать положение мыши в onClicked обработчике проверить с элементами на пути по ли они попали или нет.

+0

Спасибо! Я уже реализовал это, но каждый клик должен быть проверен, если точка лежит на каких-либо сторонах полигона, я хотел знать, есть ли более простой/эффективный способ обойти это – saitej