• qml 与C++交互


    最近一直在研究qml 怎么与C++交互,今天在网上看到一段代码忽然想明白了,哦!!!我在QT还只是一个小白,嘿嘿

    首先在我们定义了CPP文件起名:比如:util.cpp,baidumusic.cpp

    然后,在main.cpp中注册:

       qmlRegisterType<BaiduMusic>("CleanPlayerCore",1,0,"BaiduMusic");

    qmlRegisterType<Util>("CleanPlayerCore",1,0,"Util");

    别忘了引入头文件
    #include "baidumusic.h"
    #include "util.h"
    然后我们去main.qml中引入下面的库
    import CleanPlayerCore 1.0

    在qml文件中就可以直接使用了
       //工具函数
        Util {
            id:util
        }
    
    
        //百度音乐Api
        BaiduMusic {
            id: baiduMusic
        }
    是不是很简单。。。可是,却让我想了好几天。。。其实,网上有很多资料,可有的时候就是资料太多了。。关键雷同的更多。。。反而找不到自己想要的。。。
    这中方法应该是C++作为对象导入到qml里,个人觉得好像没有wpf,画面与逻辑分开的那么明显。也许是我还没有搞明白。不喜勿喷
    2)在BaiduMusic中定义了信号:
       void getSongLinkComplete(QString songLink);
    
    
       void getLyricComplete(QString url,QString lyricContent);
    然后在其他的qml中调用:
    Connections{
    target: baiduMusic
    onGetSongLinkComplete:{
    //to do something
    }
    onGetLyricComplete:{
    //to do something
    }
    }
    QT好强大。。。



  • 相关阅读:
    多线程对各种变量共享(经典)
    offsetHeight/Width clientHeight/Width scrollHeight/Width等高宽算法
    javascript基础-DOM原理
    放弃FreeMark?
    前端项目的开展
    【JAVA错误笔记】
    【JAVA错误笔记】
    【JAVA错误笔记】
    MVC Filter自定义异常(拦截)
    MVC Filter自定义验证(拦截)
  • 原文地址:https://www.cnblogs.com/wxmwanggood/p/9138415.html
Copyright © 2020-2023  润新知