Russian Qt Forum
Ноябрь 22, 2024, 22:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QtConcurrent для функции с параметрами и QFuture  (Прочитано 5929 раз)
bixbit
Гость
« : Ноябрь 09, 2013, 21:22 »

Есть функция
Код:
void Test::go(QFutureInterface<void> &future,int &test)
{
        static const int iterations = 10*1000*1000;
        for (int i=test; i < iterations; i++) {
            if (future.isCanceled())
                break;

            future.setProgressValue(100.0*i/iterations);

            QObject *object = new QObject;
            object->setObjectName("QObject");
            delete object;
        }
}
Пытаюсь вызвать её:
Код:
void Test::on_pushButton_clicked()
{
    QFutureWatcher<void> * watcher = new QFutureWatcher<void>();
    QObject::connect(watcher, SIGNAL(progressValueChanged(int)), ui->progressBar, SLOT(setValue(int)));

    int num=10;
    QFuture<void> future;
    future = QtConcurrent::run(this,&Test::go,num);

    watcher->setFuture(future);

}
Компилятор выдает
Код:
no matching function for call to 'run(Test* const, void (Test::*)(QFutureInterface<void>&, int&), int&)'

Как мне все-таки вызвать функцию с параметром?
Записан
AlekseyK
Гость
« Ответ #1 : Май 22, 2015, 23:33 »

Такой же вопрос.
Записан
hank
Гость
« Ответ #2 : Июнь 01, 2015, 14:33 »

Чтобы забиндить функцию с параметрами, следует использовать boost::bind или std::bind.
Записан
AlekseyK
Гость
« Ответ #3 : Сентябрь 19, 2015, 00:21 »

Смотрите решение здесь: http://www.prog.org.ru/topic_23042_0.html
« Последнее редактирование: Сентябрь 20, 2015, 22:56 от AlekseyK » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 21.