将指针传递给具有参数作为参数的函数

时间:2017-06-08 22:28:34

标签: c++ c++11

我有代码,我需要实现传递带有参数的函数的指针,如下面的代码所示,但它似乎不可能。

bool StudentAbsenceTableApp::loadFile(const QString &fileName)
{
    fw.moveToThread(this->thread());
    fw.setParent(this);
    //I need: &(StudentAbsenceTableApp::experimentFunction(fileName)
    QFuture<bool> future =  QtConcurrent::run(this, &StudentAbsenceTableApp::experimentFunction);
    fw.setFuture(future);

    progressBar->show();
}
// I need: experimentFunction(const QString& fileName)
bool StudentAbsenceTableApp::experimentFunction()
{
    QString fileName = "/media/bsuir/data.xml";
    XMLParser *xmlParser = new XMLParser(model);

    xmlParser->read(fileName);
    setCurrentFileName(fileName);
    statusBar()->showMessage(tr("Файл загружен"), 2000);
    documentModified = false;

    return true;
}

但我找不到任何方法。

1 个答案:

答案 0 :(得分:1)

QtConcurrent :: run支持将参数传递给函数。

QFuture<bool> future =  QtConcurrent::run(this, &StudentAbsenceTableApp::experimentFunction, fileName);

请参阅文档:http://doc.qt.io/qt-4.8/qtconcurrentrun.html#passing-arguments-to-the-function