Qt Quick学习一(核心编程)

  • 在一个quick 程序中其实 .qml 和c++文件是两个平行的世界,所以想要在qml中使用c++ 在qt中提供了两种方法
              a、把c++的一个类注册为qml环境的一个类型  这样就能在qml环境中使用该类型创建对象
              b、在c++中构造一个对象,将这个对象设置为qml的上下文属性,在qml中能够直接使用该属性
  • 想要在qml中使用 c++ (不管是上面哪种方式)必须满足两个条件
               a、继承自QObjec 或是他的派生类
               b、使用Q_OBJECT宏
1、在qml中可以访问的c++类(设置类的属性)
        信号和槽 : 可以把c++信号链接到qml 也可以把 qml信号链接到c++槽 也可以直接调用c++的信号链接c++的槽
        Q_INVOKABLE宏修饰的 c++类中的成员方法
        Q_ENUMS 宏修饰的枚举类型
        Q_PROPERTY宏修饰的属性  这个宏用起来有点麻烦详细可以查看文档
2、在qml怎么僵c++类注册为qml类型
        ①实现c++类
        ②注册成qml类型  qmlRegisterSingleType()单例类型;qmlRegisterUncreatableType()有附加属性的类型;qmlRegisterTypeNotAvailable()注册一个类型用来占位;qmlRegisterType()注册一个非单利类型
        ③在qml中导入类型 import()
        ④在qml中创建该类型的实例并且使用
3、在c++对象导出为qml属性
         ①查看图a1    
         ②如果是+Windows 的程序如图a2

发布了27 篇原创文章 · 获赞 9 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章