0

我有一个基于 Qt WebEngineView(在 QML 中)的 Windows 应用程序。我的应用程序中有网页。某些网页需要用户使用以下方式选择文件:

<input type="file" />

我想知道,我的应用程序是否可以记住最后一个目录用户选择的文件?

我努力了:

  • <input>在我的网页中将value 属性设置为,但浏览器不允许以编程方式设置它,请参阅Set default value for a input file form
  • 在 Chrome 中打开我的网页,Chrome 可以记住最后一个目录。但是在我的应用程序中,每次打开应用程序的安装目录时。
  • 在本机打开文件对话框中,我可以设置一个初始目录,但我可以为网页中的打开文件对话框做同样的事情吗?

我知道这可能是不可能的。任何建议和解决方法表示赞赏。

4

1 回答 1

2

当 Web 内容请求文件对话框时,该WebEngineView元素有一个信号

FileDialog元素具有用于设置(和获取)文件夹的属性。

所以沿着这些路线的东西应该起作用

FileDialog {
    id: dialog

    property var request

    onRejected: request.dialogReject()

    onAccepted: {
        yourSavedFolder = folder;

        request.dialogAccept(files);
    }
}

WebEngineView {
    onFileDialogRequested: {
        request.accepted = true; // inhibit default dialog

        dialog.request = request;
        dialog.folder = yourSavedFolder;
        dialog.open()
    }
}

这只是一个粗略的草图,您还需要处理请求对象的打开模式等。

于 2017-03-04T09:06:50.857 回答