qml调用html慢,浅析Qt(C++),QML与HTML之间的交互

浅析Qt(C++),QML与HTML之间的交互

写在前面

本文适合有一定Qt及HTML经验的人阅读。

Qt(C++)和QML间交互

想要了解Qt(C++)和QML间的信息交互,就不得不提到Qt的信号与槽机制。

信号与槽

信号与槽是qt的特有信息传输机制。它本质上是一种观察者模式。当某个事件触发时,它就会发出一个类似广播的信号。如果有对象对这个信号感兴趣,它就使用连接函数,将想要处理的信号和自己的一个函数(qt中成为槽)绑定来进行处理。当信号发出时,槽函数就会自动被执行。

我们通过一个例子来进行说明。

类的定义

首先,我们定义一个c++的类,该类需要继承QObject类,这样才有信号槽的能力。同时,需要在该类中添加Q_OBJECT宏。例:

#include classMyClass : public QObject

{

Q_OBJECT

};

使用Q_PROPERTY定义属性,该属性可被qml使用。它还具有一些附加特性:READ用于读属性的值;WRITE用于设置属性的值;NOTIFY则定义一个信号,该信号用来表示属性发生改变。信号会携带一个参数,表示属性的新值。l例如:

Q_PROPERTY(QString mystring READ getString WRITE setString NOTIFY mystringChanged)

绑定槽函数

QT使用connect函数来绑定信号和槽,例:

connect(this, SIGN

你可能感兴趣的:(qml调用html慢)