我有一个QMainWindow类。

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


而且我有SqlStorage类可以对数据库进行操作。

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);
}


但是,当我尝试编译时,出现以下错误:“ term不会求值为带有1个参数的函数”。

我的问题在哪里?

最佳答案

当您想使用QtConcurrent::run调用静态成员函数时,可以用与调用常规非成员函数相同的方式进行。唯一的区别是您将类范围包括在其中。像这样:

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

09-28 02:00