首页 > 其他分享 >Qml接收QList<QVariantMap> 数据

Qml接收QList<QVariantMap> 数据

时间:2024-07-01 17:11:17浏览次数:18  
标签:src name state InitList Qml InitMediaList 接收 QList id

Q_PROPERTY(QList<QVariantMap> mediaSourceList READ getMediaSourceList WRITE setMediaSourceList NOTIFY sigMediaSourceListChanged)

void TESTCPP::setMediaSourceList(QList<QVariantMap> mediaSourceList)
{
    m_mediaSourceList.clear();

#if 1
    //SRCInitMediaList represents the original media list

    //SRCMediaList represents the list of transmitted media

    struct SRCMediaList
    {
        std::string id;
        std::string name;
        std::string state;
    };
    struct SRCInitMediaList
    {
        std::string id;
        std::string name;
        std::string state;
    };

    std::vector<SRCMediaList> MediaList;
    std::vector<SRCInitMediaList> InitMediaList;
    SRCInitMediaList InitList;
    InitList.id = "8";
    InitList.name = " 8";
    InitList.state =" ";
    InitMediaList.push_back(InitList);
    InitList.id = "6";
    InitList.name = "6";
    InitList.state =" ";
    InitMediaList.push_back(InitList);
    InitList.id = "13";
    InitList.name = "13";
    InitList.state =" ";
    InitMediaList.push_back(InitList);
    InitList.id = "1";
    InitList.name = "1";
    InitList.state =" ";
    InitMediaList.push_back(InitList);
    InitList.id = "2";
    InitList.name = "2";
    InitList.state =" ";
    InitMediaList.push_back(InitList);

    SRCMediaList src;
    src.id = "8";
    src.name = "8";

    MediaList.push_back(src);
    src.id = "6";
    src.name = "6";

    MediaList.push_back(src);
    src.id = "13";
    src.name = "13";

    MediaList.push_back(src);
#endif
#if 0
    //Assume unconnected data sources
        src.id = "1";
        src.name = "1";
        MediaList.push_back(src);
        src.id = "2";
        src.name = "2";
        MediaList.push_back(src);
#endif
    for(int i=0; i< MediaList.size();i++)
    {
        if(MediaList.size()< InitMediaList.size())
        {
            InitMediaList[i].state ="0";

        }
        if(InitMediaList[i].name ==InitMediaList[i].name && InitMediaList[i].id == MediaList[i].id)
        {
            InitMediaList[i].state ="1";
        }

    }
    for (unsigned int i= 0; i< InitMediaList.size(); i++)
    {
        QVariantMap srcInfo;
        srcInfo["id"] = QString::fromStdString(InitMediaList[i].id);
        srcInfo["name"] = QString::fromStdString(InitMediaList[i].name);
        srcInfo["state"] = QString::fromStdString(InitMediaList[i].state);
        m_mediaSourceList.push_back(srcInfo);
    }

    emit sigMediaSourceListChanged(m_mediaSourceList);
}
MenuList
    {
        id: mediaMainMenuList
        anchors{
            left: parent.left
            top: parent.top
        }
        listViewScrollBarActive: false
        ListModel: mediaSourceList
        ListDelegate: TListItemTextWithIcon {
            id: menuItemText
            textValue: modelData.name
            textColor: ""
            height: 65
            enabled: true
            iconSource: {
                var path = " "
                switch(modelData.name)
                {
                case :
                default:
                    break
                }
                 return  path 
            }
        }
    }

标签:src,name,state,InitList,Qml,InitMediaList,接收,QList,id
From: https://www.cnblogs.com/lllion/p/18278446

相关文章

  • Qml 实现一个垂直滑动条
    ScrollBar.vertical:ScrollBar{id:scrollBarvisible:trueactive:trueorientation:Qt.VerticaltopPadding:0bottomPadding:0anchors.top:parent.topanchors.left:pa......
  • qml 定义使用qmdir 文件
    在QML文件中使用qmdir文件通常是通过在QML模块的根目录下创建一个名为qmdir的文件,并在其中定义模块的元数据信息。这样可以帮助Qt Creator等工具正确识别和处理这些自定义的QML模块。下面是一个简单的示例,演示如何在QML文件中使用qmdir文件:1.在QML模块的根目录下创建一个名为qmd......
  • 【QML】用 Image(QQuickPaintedItem) 显示图片
    大体功能:频繁地往界面推送图片,帧率达到视频效果。捕获画布上的鼠标事件和键盘事件。代码如下://DrawImageInQQuickPaintedItem.pro代码如下:QT+=quick#YoucanmakeyourcodefailtocompileifitusesdeprecatedAPIs.#Inordertodoso,uncommentthefo......
  • 『FPGA通信接口』LVDS接口(4)LVDS接收端设计
    文章目录1.LVDS接收端概述2逻辑框图3.xapp855训练代码解读4.接收端发送端联调5.传送门1.LVDS接收端概述接收端的传输模型各个属性应该与LVDS发送端各属性一致,例如,如果用于接收CMOS图像传感器的图像数据,则接收端程序的串化因子、通道个数等将要与设备一致。在硬件设......
  • springMvc 接收文件 MultipartFile
    使用SpringMVC 的controller中接收文件,如果只是接收一个文件,声明MultipartFile或者指定@RequestParam注解,参数(strReqBody和 images)与前端参数一致即可例:第一种方式publicvoiduploadImg(MultipartFileimg){}第二种public void uploadImg(SringstrReqBody,@Req......
  • 使用EventBus在Activity和fragment之间传递数据,出现post一次,却接收到多次对应事件
    背景项目中有一个activity,其中通过viewpager管理着多个页面,在activity操作某些数据时,通过eventbus将消息传递给fragment。该fragment中,分别在onViewCreated注册了eventbusif(!EventBus.getDefault().isRegistered(this)){EventBus.getDefault().register(this);}在onDes......
  • vue3的defineProps接收类型注解
    //这是没有用ts语法接收的props参数defineProps({color:String,size:{type:String,required:false,default:'middle'},})//TS语法//格式:withDefaults(defineProps<类型>(),{默认值名:默认值})第一种写法:withDefa......
  • 免费Syslog日志接收工具
    如果您想知道您的网络中发生了什么,以便洞察潜在的威胁并在它们变成攻击之前阻止它们,那么您需要查看您的日志。Syslog日志是网络设备、操作系统和应用程序生成的一种重要日志数据,通过有效地收集和监视Syslog日志,企业可以及时发现问题并保障网络安全。 本文介绍几款免费Syslog日......
  • 问题:如果发送者先运行,而队列是在接收者中定义的,// declare a server-named queue var
    在RabbitMQ中,当你使用交换机(Exchange)和绑定(Binding)时,消息的路由是由交换机类型和绑定键(RoutingKey)来决定的,而不是直接由队列名称来决定的。交换机负责接收生产者发送的消息并根据一定的规则将这些消息路由到一个或多个队列中。问题解释与RabbitMQ的原理发送消息时的行为:发送......
  • 企业邮箱大附件无法上传?无法确认接收状态?这样解决就行!
    Outlook邮箱作为最常用的邮箱系统,被全世界企业采用作为内部通用沟通方式,但Outlook邮箱却有着明显的使用缺陷,如邮箱大附件上传障碍及附件接收无提示等。1、企业邮箱大附件无法上传Outlook企业邮箱大附件的上传上限一般是50M,这就导致邮箱仅能支撑消息类、文字类内容,对于图纸、音......