In Qt,
QFileDialog *dlg = new QFileDialog();
QDir dir = dlg->getExistingDirectory(this, tr("Choose folder"), qgetenv("HOME"));
打开文件夹选择对话框。一旦我选择了一个文件夹(按选择按钮),该文件夹就不会自动关闭。所以我尝试:
if(dlg->close() == true) delete(dlg);
当我调试时 dlg->close() 返回 true 并且代码删除(dlg) 被命中。文件夹选择器对话框仍然没有关闭。
我使用的是 Ubuntu 11.10 64 位操作系统。使用存储库中的 Qt 库。
我的最终目标只是显示一个文件夹选择器对话框,一旦选择了文件夹,对话框就应该关闭。之后处理应该继续。这个怎么做?
提前致谢。
Even if QFileDialog::getExistingDirectory
是静态的,不需要QFileDialog
对象要工作,它应该在最终选择目录时关闭对话框窗口。
默认情况下,该函数尝试打开本机文件对话框窗口,这似乎会在某些平台上引起一些问题。
您应该尝试通过添加选项来强制使用非本机对话框DontUseNativeDialog
:
QString dir = QFileDialog::getExistingDirectory(
this,
tr("Choose folder"),
QDesktopServices::storageLocation(QDesktopServices::HomeLocation),
QFileDialog::ShowDirsOnly | QFileDialog::DontUseNativeDialog);
并删除另外两行(用new QFileDialog
and if(dlg->close()) ...
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)