Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. QtLocation: MouseArea stop Updating even if hoverEnabled is true.

QtLocation: MouseArea stop Updating even if hoverEnabled is true.

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
1 Posts 1 Posters 194 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G Offline
    G Offline
    gab74
    wrote on last edited by
    #1

    I have a qml map application and I added a marker as MapQuickItem. I have a lat lon display label connected to map Mousearea, when I move the mouse on the map i read lat/lon in realtime, and all works well.

    marker.qml is a mapquickItem with its Mousearea, when the mouse is "hover" on the marker I write a string into the "labelLatLon" of the map. ALL Works well, but when I exited the mouse from the marker, the "labelLatLon" is no more been updated with the mouse coordinate, it stops updating lat lon. I move the mouse but no more lat/lon update... It seems the main MouseArea stop "hearing" mouse onhover, as soon as a i set the "display label" from the marker calling setLatLonBox(coordinate);

    map.qml is

        Rectangle {
                id: mainWindow
                visible: true
        Plugin {
            id: mapPlugin
            name: "osm"
            PluginParameter {
                name: "osm.mapping.providersrepository.disabled"
                value: "true"
            }
            PluginParameter {
                name: "osm.mapping.providersrepository.address"
                value: "http://maps-redirect.qt.io/osm/5.6/"
            }
        }       
        
        function addMarker(latitude,longitude) {
            
            var Component = Qt.createComponent("qrc:///qml/marker.qml")
            var item = Component.createObject(Item, {
                                                  coordinate: QtPositioning.coordinate(latitude, longitude)
                                              })
            map.addMapItem(item);         
        }
                
        function setLatLonBox(coordinate) {    
            labelLatLon.text= "Lat: %1; Lon:%2".arg(coordinate.latitude).arg(coordinate.longitude)  
        }
        
        Map {
            id: map
            
            gesture.enabled: true
            copyrightsVisible : true
            anchors.fill: parent
            plugin: mapPlugin
            center: QtPositioning.coordinate(44.0, 9.3) // La Spezia
            zoomLevel: 10
            Component.onCompleted:addMarker(44.0, 9.3)
            
            
            MouseArea  {
                id: mapMouseArea
                property int pressX : -1
                property int pressY : -1
                property int jitterThreshold : 10
                property int lastX: -1
                property int lastY: -1
                property var coordinate: map.toCoordinate(Qt.point(mouseX, mouseY))
                
                anchors.fill: parent
                acceptedButtons: Qt.LeftButton | Qt.RightButton
                hoverEnabled : true
    
                ColumnLayout {
                    id: layout
                    spacing: 5
                    z: 5  // ordine alto
                                        
                    Rectangle {
                        id: latLonArea
                        z: 5  // ordine alto
                        width: 320
                        height: 40
                        color: "grey"
                        opacity: 0.7
                        border.color: "black"
                        border.width: 1
    
                        Label {
                            id: labelLatLon
                            anchors.verticalCenter:  parent.verticalCenter
                            anchors.horizontalCenter:  parent.horizontalCenter
                            font.bold: true
                            color: "black"
                            text: "Lat: %1; Lon:%2".arg(mapMouseArea.coordinate.latitude).arg(mapMouseArea.coordinate.longitude)                            
                        }
                    }                    
                }
            }
        }
    }
    

    the marker.qml is

        MapQuickItem {
                id: marker
                z: 2  //ordine basso
                anchorPoint.x: marker.width / 2
                anchorPoint.y: marker.height /2
                property int idx
        sourceItem: Image{
            id: icon
            source: "../symbols/Red_Cross.png"
            sourceSize.width: 40
            sourceSize.height: 40
            opacity: markerMouseArea.pressed ? 0.6 : 1.0
        }
            
        MouseArea {
            id: markerMouseArea
            property int pressX : -1
            property int pressY : -1
            property int jitterThreshold : 10
            property int lastX: -1
            property int lastY: -1
            anchors.fill: parent
            acceptedButtons: Qt.LeftButton | Qt.RightButton
            hoverEnabled : true
            drag.target: marker
            
            onEntered: {
                var coordinate = map.toCoordinate(Qt.point(mouseX, mouseY));
                setLatLonBox(coordinate);
            }
        }
    }**
    
    1 Reply Last reply
    0

    • Login

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Get Qt Extensions
    • Unsolved