C++与QML交互之信号槽

  1. 分工
    C++实现非界面的业务逻辑和复杂运算
    QML构建界面
  2. 在QML中使用C++对象的方式
  • 在C++中实现一个类下,注册为QML环境的一个类型,在QML环境中使用该类型创建对象

    1. 注册为QML环境的一个类型?

    2. 在QML环境中使用该类型创建对象

  • 在C++中构造一个对象,将这个对象设置为QML的上下文属性,在QML环境中直接使用该属性

    1. 把对象设置为QML上下文属性?
  1. 把一个类或对象导出到QML中的前提
  • 从QObject或QObject的派生类继承
  • 使用Q_OBJECT宏
  1. 信号槽
  2. Q_INVOKABLE宏就可以让该方法被元对象系统调用,这个宏必须放在返回类型的前面
  • 一但使用了Q_INVOKABLE将某个方法注册到元对象系统中,在QML中就可以用 O b j e c t . {Object}. Object.{method}来访问
  1. Q_ENUMS宏
  • 类想在QML中使用枚举类型,可以使用Q_EMUMS将该枚举类型注册到元对象系统中
  • 在QML中使用 C L A S S N A M E . {CLASS_NAME}. CLASSNAME.{ENUMS_VALUE}
  1. Q_PROPERTY宏
  • 通过Q_PROPERTY定义的属性可以在QML中访问、修改,也可以在属性变换时发射特定的信号
  1. 注册一个可用的QML类型

你可能感兴趣的:(Qt)