qt - QFileDialog::DontUseNativeDialog 不起作用

标签 qt qfiledialog

我对一个简单的程序有疑问。 我以这种方式打开 QFileDialog:

QFileDialog fileDialog(this);
fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
if (!fileDialog.exec())
return;

但是它显示的是 Qt 对话框而不是 native Windows 对话框。我使用的是 Windows 7 x64,而且我确实更喜欢 native 对话框而不是 Qt 对话框,因为它更奇特一些。然而我读过,我发现这可以通过使用来改变:

fileDialog.setOption(QFileDialog::DontUseNativeDialog, false);

事实上,我没有得到 native Windows 对话框,而是 Qt 对话框,因此该选项不起作用...有人知道如何在不使用静态成员的情况下解决此问题吗?

我真的不想使用静态成员,因为它们存在某种内存泄漏问题或其他问题,因为如果您使用静态成员重复打开新对话框,程序使用的内存会不断增加,但是,使用以前用指针存储的对话框没有这个问题。

所以,如果有人对这两件事( native 对话框和内存泄漏问题)有答案,请告诉我。

谢谢。

最佳答案

native 对话框不支持 QFileDialog 类公开的全部功能。这就是为什么它们只能通过名为 getOpenFileName()getSaveFileName() 等的静态快捷函数来使用。如果您正在使用这些函数但仍然不想看到 native 对话框,则可以使用 DontUseNativeDialog 标志。

关于qt - QFileDialog::DontUseNativeDialog 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6405234/

相关文章:

c++ - 如何从 C++ 代码中获取项目名称?

python - PyQt 导出当前在 QListWidget 中可见的 QListWidgetItems 的 y 像素坐标

qt - QFileDialog 取消

c++ - 窗口模式 QFileDialog 在 exec() 之后将父级推到后台

python - QComboBox 项目文本在 Windows 上被截断

c++ - 将小部件添加到布局仅适用于自定义类的构造函数

qt - QFileDialog : how to set option to show content of folder in getExistingDirectory()

c++ - Qt:在getSaveFileName中隐藏文件夹

python - PyQt - QFileDialog - 直接浏览到文件夹?

c++ - 有没有比仅使用 RegExp 更好的方法在 QToolTip 中自动换行文本?