QtConcurrent参数个数错误

时间:2014-10-01 13:18:21

标签: c++ qt static-methods qtconcurrent

我有一个QMainWindow课程。

class MainWindow: public QMainWindow
{
Q_OBJECT
    ...
public:
    void insertVector();
    ...
};

我有类SqlStorage来使用Data Base进行操作。

class SqlStorage : public QObject {
Q_OBJECT
    ...
public:
    static void loadSQL();
    ...
};

在insertVector()方法中,我尝试在DB中异步写入。

void MainWindow::insertVector()
{
    SqlStorage* _sqlStorage = new SqlStorage;
    QFuture<void> future = QtConcurrent::run(_sqlStorage, &SqlStorage::loadSQL);
}

但是当我尝试编译时,我有错误:&#34;术语不会评估为带有1个参数的函数&#34;。

我的问题在哪里?

1 个答案:

答案 0 :(得分:4)

如果要使用QtConcurrent::run调用静态成员函数,则执行此操作的方法与调用常规非成员函数的方式相同。唯一的区别是你在其中包含了类范围。像这样:

QFuture<void> future = QtConcurrent::run(SqlStorage::loadSQL);