2016-12-05 5 views
0

QFileDialogを特定のデフォルトディレクトリで開き、ファイルを選択したいとします。引数 "url"がQFileDialog :: getOpenFileUrlのように見えますが、動作させることはできません。ここに私が行ったことがあります:Windows WinRTでQFileDialogのデフォルトディレクトリを設定する方法

QUrl url("file:///D:/"); 
QUrl path = QFileDialog::getOpenFileUrl(0, "Open File", url, tr("Database (*.db)")); 

デフォルトのディレクトリが設定されていません。

私はWindows 10を実行していて、WinRTプラットフォーム用のmsvc2015を使用してコンパイルします。

編集:バグしているようだ、私はチケットいっぱい:https://bugreports.qt.io/browse/QTBUG-57464

+0

を動作するはずです、あなたはそれが 'url'で何を見るために' getOpenFileUrl'にトレースされたことがありますか?そうでなければ、デバッグできるようにQtのデバッグビルドを行います。それはあなたの生産性を向上させます。 –

答えて

0

をQUrlは、URLのすべての種類を扱うために設計されているので、それがローカルファイルに来るとき、私はパス文字列を直接操作することは、より一般的であると思います。ですから、代わりにgetOpenFileNameを使用することをお勧めします。

QString defaultPath ="D:/"; 
QString ret = QFileDialog::getOpenFileName(0, "Open File", defaultPath, tr("Database (*.db)")); 

しかし、何らかの理由でQUrlを使用する必要がある場合は、このように使用できます。

QUrl url= QUrl::fromLocalFile("D:/"); 
QUrl path = QFileDialog::getOpenFileUrl(0, "Open File", url, tr("Database (*.db)")); 
+0

悲しいことに、両方の命題は機能しません。これをWindows 10/WinRT/Qt 5.7でも動作させることができましたか? – Oswin

+0

はい、私はこれらを試しました。私のOSとQtのバージョンはあなたと同じです。私はfile:///プレフィックスを使用しないことに注意してください。 –

+0

はいプレフィックスは削除されています。申し訳ありませんが、WinRT用にコンパイルしてもよろしいですか?あなたのコードは、Desktop Qt 5.7 for Windows 10では動作しますが、WinRT 5.7では動作しません。 – Oswin

関連する問題