У меня есть функция копирования рекурсивного каталога, которую я хотел бы запустить в фоновом режиме. Функция принимает два аргумента QString, путь к файлу и каталог.QTConcurrent не компилирует
От .pro:
QT += core gui sql network concurrent
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
LIBS += -lQt5Concurrent
Из кода:
#include <QtConcurrent/QtConcurrent>
#include <qtconcurrentrun.h>
#include <QThread>
...
QFuture <void> future = QtConcurrent::run(copyFolder(filepath,dir));
я получаю следующее сообщение об ошибке компиляции:
error: no matching function for call to 'run'
QFuture <void> future = QtConcurrent::run(copyFolder(filepath,dir));
^~~~~~~~~~~~~~~~~
Если я вызываю функцию так:
QFuture <void> future = QtConcurrent::run(copyFolder, filepath,dir);
error: reference to non-static member function must be called
QFuture <void> future = QtConcurrent::run(copyFolder, filepath,dir);
^~~~~~~~~~
Что я делаю неправильно?
Есть ли другие строки ниже ошибки? Например. «примечание: кандидаты:« и так далее? –
Да. Довольно много. – jocala
После редактирования вы, кажется, пытаетесь вызвать другую функцию-член, используя 'QtConcurrent :: run', см. Мой ответ. – Mike