23 lines
989 B
Markdown
23 lines
989 B
Markdown
|
## 信号与槽
|
|||
|
信号与槽都可以在qml中访问
|
|||
|
### Q_INVOKABLE宏
|
|||
|
在定义一个类的成员函数时使用Q_INVOKABLE宏来修饰,就可以让该方法被元对象系统调用。(也就是注册到元对象系统中)
|
|||
|
例如:
|
|||
|
```
|
|||
|
Q_INVOKABLE void setAlgorithm(GenerateAlgorithm algorithm);
|
|||
|
```
|
|||
|
### Q_ENUMS宏
|
|||
|
使用Q_ENUMS(枚举名)的方式来注册枚举类型
|
|||
|
### Q_PROPERTY宏
|
|||
|
Q_PROPERTY宏用来定义可通过元对象系统访问的属性,通过它定义的属性,可以在QML中访问、修改,也可以通过在属性变化时发射特定信号。
|
|||
|
### 注册一个QML可用类型
|
|||
|
1. 实现c++类
|
|||
|
2. 注册QML类型
|
|||
|
3. 在QML中导入类型
|
|||
|
4. 在QML中创建由c++导出的类型的实例并使用
|
|||
|
|
|||
|
#### 注册QML类型
|
|||
|
1. qmlRegisterSingletonType() 用来注册单例类型
|
|||
|
2. qmlRegisterType() 注册非单例类型
|
|||
|
3. qmlRegisterTypeNotAvailable() 注册一个类型用来占位
|
|||
|
4. qmlRegisterUncreateableType() 注册具有附加属性的附加类型
|