为什么我的 Qt 文件对话框的原生性取决于环境变量?

Why does the nativeness of my Qt file dialog depend on environment variables?

根据 等较早的答案,Qt 文件对话框仅在使用静态函数创建对话框时才是原生的。这在这里不是真的(实际上上面引用的答案的评论表明这不再是真的)。​​

我已子类化 QFileDialog 并调用 exec() 方法来显示对话框。在 Eclipse 中,我在启动配置中设置了 PATH 环境变量以查找 DLL。令我惊讶的是,如果我 select "Append environment to native environment" 我会得到本机 Windows 文件对话框,如果我 select "Replace native environment with specified environment" 我会得到非本机 Qt 文件对话框在 eclipse 启动配置中。

有人对此有解释吗?哪个环境变量决定我的文件对话框是否是原生的?

我正在使用 Qt 5.14.1 和 Mingw-w64。

原因很简单:我的路径中还有其他Qt库。例如 TortoiseHg 和 MikTeX 带有 Qt 库,我已经安装了它们。显然,当它们在路径内时,它们的一些 DLL 会被加载,这会影响 Qt 的行为。如果我替换本机环境,则只会加载由我的启动配置定义的路径中的库。