2014-10-01 3 views
0

У меня есть класс QMainWindow.QtConcurrent количество аргументов ошибка

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

Если вы хотите вызвать статические функции-члены с помощью QtConcurrent::run, вы делаете это так же, как вы вызываете регулярную функцию, не являющуюся членом. Единственное отличие заключается в том, что вы включили в него класс. Как это:

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

Стараюсь свой код, но также имеют ошибку на complation (ошибка C2064: термин не вычисляется функция принимает 1 аргументы) –

+0

@koch_kir Поместите свой обновленный код в вопросе – thuga

+0

Ok. Я сделал это. Кроме того, когда я добавляю аргументы в эту функцию, у меня есть аналогичная ошибка. –

 Смежные вопросы

  • Нет связанных вопросов^_^