我正在尝试使用一个函数来记录所选时间的视频,所以我使用一个信号来启动它,但是GUI仍然是块的,所以我现在尝试使用QtConcurrent::run在一个分开的线程中完成它。我有记录的类,所以我尝试用这种方式从同一个类调用它:
void VideoProcessor::record(int index, int time, int frames, QString path){
QFuture<void> future = QtConcurrent::run(recordAsync,index,time,frames, path);
}
void VideoProcessor::recordAsync(int index, int time, int frames, QString path)
{
recording code ....
}或者像这样的地方:
void Controller::StartRecording(int index, int time, int frames, QString path)
{
QFuture<void> future = QtConcurrent::run(&this->videoProcessor,record,index,time,frames, path);
this->videoProcessor->record(index,time,frames,path);
}但我发现了这个错误:
错误:对“run”的调用没有匹配函数(ab::VideoProcessor**, 、int&、QString&)‘ QFuture未来= QtConcurrent::run(&this>videoProcessor、record、index、time、frames ) 路径);
发布于 2014-09-10 11:43:44
您应该提供指向对象的指针以及类成员函数的地址。如果您的函数有参数,则可以在最后传递它们:
QFuture<void> future = QtConcurrent::run(this, &VideoProcessor::recordAsync, index, time, frames, path);https://stackoverflow.com/questions/25764286
复制相似问题