0

我有一个 QMainWindow 类。

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

我有 SqlStorage 类来对数据库进行操作。

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

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

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

但是当我尝试编译时,我有一个错误:“术语不评估为带 1 个参数的函数”。

我的问题在哪里?

4

1 回答 1

4

当您想用 调用静态成员函数时QtConcurrent::run,您可以像调用常规非成员函数一样执行此操作。唯一的区别是您在其中包含类范围。像这样:

QFuture<void> future = QtConcurrent::run(SqlStorage::loadSQL);
于 2014-10-01T13:30:59.740 回答