当调用getOpenFileName时,函数经常挂起5秒左右。实际调用是:
QString fileName = QFileDialog::getOpenFileName(this,
tr("Open XML"),"D:\\xml_reader\\data\\",tr("XML Files (*.xml *.*)"));我要发送到的文件夹只包含一个文件,所以不是因为文件数的原因。我在Debug和Release中都尝试过,它们都遇到了同样的问题。
我在网上看到其他人也有类似的问题,但没有解决方案。我在过去使用过其他版本的QT,从未遇到过这个问题。
发布于 2019-11-14 05:22:11
我最近遇到了同样的问题,我的修复方法是从windows文件资源管理器左侧的快速访问列表中删除一个坏的网络位置。无法再访问网络位置。
在实际选择文件和点击取消或关闭按钮时,它在释放和调试模式下都会滞后。
对话框会快速打开,但在关闭对话框后,我的应用程序会延迟2-5秒,然后继续执行下一条指令,这是我通过单步执行调试中的代码并在release中的下一行打开一个视觉提示来确认的。
最终帮助我意识到问题的是,当它在一个完全不同的应用程序中再次发生时,它不是由我开发的。
发布于 2014-02-04 17:25:51
附注:QT - is QuickTime,您正在使用Qt
@JohnNeuhaus的特别摘要更新:
问:为什么getOpenFileName很慢?
答:原因:Comdlg32.dll是第一次调用getOpenFileName时开始加载的延迟加载库。这个加载时间很长。如果连接了调试器,则动态链接时间可能会增加(因为需要加载.pdb)。
解决方法:在应用程序启动时直接加载`Comctl32.dll‘:
QLibrary lib( "Comctl32.dll" );`
lib.setLoadHints( QLibrary::ResolveAllSymbolsHint );
lib.load();https://stackoverflow.com/questions/21545319
复制相似问题