2017-06-08 40 views
1

私は以下のコードのように、引数を持つ関数へのポインタを渡す実装が必要なコードを持っていますが、これは可能ではありません。パラメータをパラメータとして持つ関数へのポインタの受け渡し

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; 
} 

しかし、方法はありません。

+0

簡単な '信号とslot'ベースのコールを使用してみましたが? – codekaizer

+0

クラスの定義を変更できる場合は、メンバー関数 'expermientFunction()'の宣言を変更できます。クラス定義を変更できない場合は、正しいです。あなたはそこに運がありません。 –

+1

ちょうど 'QtConcurrent :: run(これ、&StudentAbsenceTableApp :: experimentFunction、fileName)' –

答えて

関連する問題