2016-12-13 16 views
0

ユーザーがフォルダを選択できるようにして、その内容を別の場所に表示して並べ替えることができます。これを行う最善の方法はQFileDialogを使用しているようです。C++のQFileDialog:「呼び出しに一致する関数がありません」

> #include <QFileDialog> 
..... 
void someEvent(){ 
QString path = QFileDialog::getExistingDirectoryUrl(this, tr("Choose a Folder"), QDir::home()); 
} 

を、私はこれをコンパイルしようとすると、私はエラーを取得する:
QFileDialog::getExistingDirectoryUrl(MainWindow*, QString, QDir) path = QFileDialog::getExistingDirectoryUrl(this, tr("Choose a Folder"), QDir::home());

ノートへの呼び出しのための 一致する関数がない:私は、Fedora 25を実行しているここで私が使用しているコードの抜粋ですそれが問題なのかどうか疑問に思っていますか?

+1

は、3番目のパラメータは 'QUrl'する必要があります([docs](http://doc.qt.io/qt-5/qfiledialog.html#getExistingDirectoryUrl)に従って)、あなたは 'QDir'を渡しています – UnholySheep

+4

おそらくあなたは[' getExisti第3のパラメータとして 'QDir :: home()。path()'を指定して、ngDirectory'](http://doc.qt.io/qt-5/qfiledialog.html#getExistingDirectory) – UnholySheep

+2

または 'QDir :: homePath()' http://doc.qt.io/qt-4.8/qdir.html#homePath – drescherjm

答えて

0

あなたは2つの選択肢は、あなたのニーズに応じて、持って、最高である第1の1:

getExistingDirectory

QString path = QFileDialog::getExistingDirectory(this,tr("Choose a Folder"),QDir::homePath()); 

getExistingDirectoryUrlは:

QUrl url = QFileDialog::getExistingDirectoryUrl(this,tr("Choose a Folder"),QUrl(QDir::homePath())); 
QString path = url.toString(); 
関連する問題