从Qml中异步调用C ++函数或在新线程中调用C ++函数

时间:2017-12-28 15:06:28

标签: multithreading qt c++11 qml

我完成了整个项目,构建了一个基本上根据GUI中的一些用户输入组合获取sql查询结果的应用程序,我相信在C ++代码中调用Q_INVOKABLE函数时会出现一些性能问题一些计算来产生查询并运行查询并返回结果,所以我想知道是否有一种方法可以在qml的单独线程中运行该函数。 骨架有点像这样:

Result.h

class Result{
public:
   Q_INVOKABLE void on_submit_button_clicked(); 
}

Result.cpp

Result::on_submit_button_clicked()
{
        /*Code that prepare the query*/

        /*Code that runs the query using a Qthread*/
}

main.qml

ApplicationWindow
{
    id:appwindow


    /*Other parts of the GUI*/
    Button{
        id:submitButton
        onClicked:{
              result_object.on_submit_button_clicked() //how to run this function in a new thread ? 
              /*code to load my table view columns*/
        }
    }
}

0 个答案:

没有答案