qt c++发信号给qml

网上的感觉没一个靠谱的。

首先C++你要有个信号,例如头文件中:

signals:
    void sigSendStrings(const QStringList &strs);
protected:

然后c++把自己绑定到qml中:

quickwidget->rootContext()->setContextProperty("view", this);

最后在qml中监听c++信号即可:

Connections{
        target: view
        function onSigSendStrings(str){
            console.log("recv signal!")
            console.log("str:",str)

        }
    }

注意,setContextProperty要在setSource之前,否则报很多警告

你可能感兴趣的:(qt,c++,开发语言)