我正在使用QFileDialog
getOpenFileName
和getSaveFileName
。我在网络上有一个文件(连接速度慢),我用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)"));
谢谢。
答案 0 :(得分:2)
不幸的是,如果您像使用本机对话框一样,那么就无法做到这一点。 getOpenFileName
打开本机文件对话框,这是本机平台代码,用于枚举目标目录中的文件。
如果您不需要本机对话框,则可以执行各种操作来解决阻塞/同步目录迭代接口以及基本异步的I / O资源。
答案 1 :(得分:1)
尝试选项QFileDialog::DontUseNativeDialog
。这应该禁止打开原生对话框。
我使用非原生对话框(通过QFileDialog派生)多年来摆脱你所描述的问题。