我有一个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);