【发布时间】:2011-06-19 21:33:37
【问题描述】:
我对一个简单的程序有疑问。 我以这种方式打开 QFileDialog:
QFileDialog fileDialog(this);
fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
if (!fileDialog.exec())
return;
但是它显示了一个 Qt 对话框而不是本机 Windows 对话框。我使用的是 Windows 7 x64,我真的更喜欢原生对话框而不是 Qt 对话框,因为它有点花哨。但是我读过,我发现这可以通过使用来改变:
fileDialog.setOption(QFileDialog::DontUseNativeDialog, false);
事实上,我得到的不是原生 Windows 对话框,而是 Qt 对话框,所以该选项不起作用...有人知道如何在不使用静态成员的情况下解决这个问题吗?
我真的不想使用静态成员,因为它们有某种内存泄漏问题或其他问题,因为如果您使用静态成员反复打开新对话框,程序使用的内存会增加和增加,但是,使用以前用指针存储的对话框没有这个问题。
所以,如果有人对这两个问题(本机对话和内存泄漏问题)都有答案,请告诉我。
谢谢。
【问题讨论】:
标签: qt qfiledialog