如何在 Windows WinRT 上设置 QFileDialog 的默认目录

How to set default directory of QFileDialog on Windows WinRT

我想打开一个带有特定默认目录的 QFileDialog 到 select 一个文件。 QFileDialog::getOpenFileUrl 的参数 "url" 似乎是为此而设计的,但我无法让它工作。这是我所做的:

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

它不起作用,没有设置默认目录。

我是 运行 Windows 10 岁,我使用适用于 WinRT 平台的 msvc2015 进行编译。

编辑:好像是个bug,我补了个票:https://bugreports.qt.io/browse/QTBUG-57464

我认为在处理本地文件时直接使用路径字符串更为传统,因为 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)"));

这目前不可能,可能是由于 Qt WinRT 端口的错误。

参见:https://bugreports.qt.io/browse/QTBUG-57464

错误修复后,t.m。的答案应该有效