QFileDialog慢速网络

时间:2016-06-20 18:37:56

标签: c++ qt

我正在使用QFileDialog getOpenFileNamegetSaveFileName。我在网络上有一个文件(连接速度慢),我用getOpenFileName加载。然后,如果我尝试创建一个新的QFileDialog,则需要永久加载。

我用Process Monitor查看了这个过程,我可以看到它慢慢地遍历我上次打开文件的网络位置中的每个文件。在我重新启动计算机之前,它仍然很慢。我该怎么做才能加快速度呢?

以下是一些代码:

打开文件对话框

QString filename;
QFileDialog fd(this);
filename = fd.getOpenFileName(this,tr("Open CSV File"), ".",tr("CSV Files (*.csv)"));

保存文件对话框

QString filename;
QFileDialog fd(this);
filename = fd.getSaveFileName(this,tr("Save CSV File"), ".",tr("CSV Files (*.csv)"));

谢谢。

2 个答案:

答案 0 :(得分:2)

不幸的是,如果您像使用本机对话框一样,那么就无法做到这一点。 getOpenFileName打开本机文件对话框,这是本机平台代码,用于枚举目标目录中的文件。

如果您不需要本机对话框,则可以执行各种操作来解决阻塞/同步目录迭代接口以及基本异步的I / O资源。

答案 1 :(得分:1)

尝试选项QFileDialog::DontUseNativeDialog。这应该禁止打开原生对话框。

我使用非原生对话框(通过QFileDialog派生)多年来摆脱你所描述的问题。