QML导入C++类型

2020-07-02 14:58:25 浏览数 (3)

使用qmlRegisterType导入

  导入C 类型。

  • 原型
代码语言:javascript复制
int qmlRegisterType(const char *uri, 
                    int versionMajor, 
                    int versionMinor, 
                    const char *qmlName)
  • 配置
代码语言:javascript复制
qmlRegisterType<MyItem>("MyModel", 1, 0, "MyItem");
  • 使用
代码语言:javascript复制
import MyModel 1.0
MyItem {
}
  • 注意:MyItem类需要继承QObject。

使用qmlRegisterUncreatableType导入

  只能导入附加属性(Q_PROPERTY)或枚举值。

  • 原型
代码语言:javascript复制
int qmlRegisterUncreatableType(const char *uri, 
                               int versionMajor, 
                               int versionMinor, 
                               const char *qmlName, 
                               const QString &message)
  • 配置
代码语言:javascript复制
class Model : public QObject
{
    Q_OBJECT
    Q_ENUMS(Color)
public:
    enum Color { Red, Green, Blue };
代码语言:javascript复制
qmlRegisterUncreatableType<Model>("MyModel", 1, 0, "Warining: Single Object");
  • 使用
代码语言:javascript复制
import MyModel 1.0
Item {
 Component.onCompleted: console.log(Model.Red)
}

1 人点赞