介绍
如何在 Qt C++中调用QML的JS函数。这里我们假象一个例子。它是这样的。 我们在Qt
C++中进行网络的监测,并把不同的状态发送给QML的
JS的某个Function。然后该Function收到该状态进行处理,最后更新UI(这里我们把这个状态显示到一个Label中)。
基本思路与具体步骤
基本思路,把你的Qt C++中的对象暴露给QML端,然后利用signals-slots
进行连接,并传递消息。具体步骤如下
1
创建自己的对象,如果你的对象是要显示在QML端,可以继承QDeclarativeItem,如果只是一个控制类,而不需要显示在QML端,只需要继承QObject。这里用到数据绑定请参考Using QML Bindings in C++
Applications
#include
class NetConnectController : public QObject
{
Q_OBJECT
Q_PROPERTY(int status READ status WRITE setStatus NOTIFY statusChanged)
public:
explicit NetConnectController(QObject *parent = 0);
void Ready()
{
emit statusChanged( m_status);
}
signals:
void statusChanged(int aStatus);
private: