qml的listmodel,必须使用代理才能读取内容

helicopter.qml

import QtQuick 2.12
import QtQuick.Controls 2.12
import QtLocation 5.12
import QtPositioning 5.12

MapItemGroup{
    id:helicopter_qml
    property var c_lat
    property var c_longti

    ListModel{
        id:collisionWarn_listmodel
    }

    //地图上绘制航迹直线
    MapPolyline {
        id: collision_line
        line.width: 2
        line.color: "red"
    }

    //航迹端点图标
    MapItemView {
        model: collisionWarn_listmodel
        
        delegate: MapQuickItem {
            coordinate: QtPositioning.coordinate(lat_collision,lon_collision)
            anchorPoint.x: width / 2
            anchorPoint.y: height / 2
            sourceItem: Rectangle {
                width: 5
                height: 5
                color: "red"
                radius: 2 // 使其成为圆形
            }

        }
    }
    
   实例化这个类以后,可以用指针调用这个函数,就能填充listmodel数据
/**************数据的来源***************/
    property var helicopter_name
    property var longtitude
    property var latitude
    property var helicopter_height
    function appendpoint(name,coord)
    {

        helicopter_name=name
        longtitude=coord.latitude
        latitude=coord.longitude
      //  helicopter_height=height
        //控制圆的圆形,圆就可以移动了
        helicopter_qml.c_lat=coord.latitude
        helicopter_qml.c_longti=coord.longitude

//这里就是给listmodel,添加数据
        collisionWarn_listmodel.append({"lat_collision":coord.latitude,"lon_collision":coord.longitude});
    }

/**************数据的来源***************/
 }

摘要

//定义ListModel
  ListModel{
        id:collisionWarn_listmodel
    }
    
// 实例化这个类以后,可以用指针调用这个函数,就能填充listmodel数据
//这里就是给listmodel,添加数据
    function appendpoint(name,coord)
    {
 collisionWarn_listmodel.append({"lat_collision":coord.latitude,"lon_collision":coord.longitude});
    }
//listmodel-view结构
//使用ListModel的数据,生成圆角矩形
    MapItemView {
        model: collisionWarn_listmodel
        
        delegate: MapQuickItem {
            coordinate: QtPositioning.coordinate(lat_collision,lon_collision)
            anchorPoint.x: width / 2
            anchorPoint.y: height / 2
            sourceItem: Rectangle {
                width: 5
                height: 5
                color: "red"
                radius: 2 // 使其成为圆形
            }
        }
    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值