【Qt笔记】QML与C++双向交互
以下如何实现QML对C++数据的双向访问
C++需要准备的工作
对于每一个变量,需要以下工作:
- 一个读取函数 (Read) ,用于返回C++的数据给QML
- 一个写入函数 (Write) ,用于将QML给的数据写进C++的数据中,使用传参
- 一个通知信号 (Changed) ,在数据交换时执行,用于执行下一步。信号需要在上级cpp文件中做好连接工作
- 在cpp文件中定义QML能访问的变量
1 |
|
注意,Notify_signal
函数是由C++发起的信号,然后由QML接受,通知QML相关组件可以更新了。Q_PROPERTY
的仨函数大概如下:
1 |
|
如果要让QML可以直接访问函数,对于每一个函数需要以下工作
- 定义该函数,但是要让QML能够访问到该函数
1 |
|
其中,Q_INVOKABLE
使得函数可以被QML访问
QML需要准备的工作
在main.cpp
里面注册好C++文件
1 |
|
将Qt中特有的数据类型转换成C++中可用的Qt数据类型
1 |
|
【Qt笔记】QML与C++双向交互
https://学习.fun/ml-note/qt-qmp-c++/