> On 7 Mar 2019, at 18:32, maitai <mai...@virtual-winds.org> wrote:
> 
> Hi,
> 
> I need to trigger various actions whenever a MapPolyLine is hovered or 
> pressed, such as displaying a tooltip, a menu, etc.
> 
> I have put a MouseArea on it with anchors.fills: parent, but the problem is 
> that the mouse area does not represent the line, but the polygon made by the 
> line. For instance if you have a L shape, entered event and so on is 
> triggered when you enter the bounding rectangle of the line, not when you 
> hover over the line itself.
> 
> On a QGraphicsScene we had the shape() protected method for that kinds of 
> case, for instance with a QPainterPathStroker to give some thickness to the 
> line's "mousearea".
> 
> I will probably end with a custom property that will carry the pixel distance 
> between the line segments and the mouse coordinates, but this is going to be 
> heavy to compute (I have potentially hundreds of complicated lines on the 
> map).
> 
> Is there a better way or even better a standard way to do that?

Check out containmentMask: that’s how you can redefine the behavior of 
MouseArea’s contains() method in QML.

You could use HoverHandler and/or TapHandler though, and then perhaps set 
containmentMask on the polyline itself if behavior is still not what you want 
(I haven’t tried it with MapPolyLine myself, only with QtQuick.Shapes).

_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to