在Qt,
QFileDialog *dlg = new QFileDialog();
QDir dir = dlg->getExistingDirectory(this, tr("Choose folder"), qgetenv("HOME"));
Run Code Online (Sandbox Code Playgroud)
打开文件夹选择对话框.选择文件夹后(按选择按钮),文件夹不会自动关闭.所以我尝试过:
if(dlg->close() == true) delete(dlg);
Run Code Online (Sandbox Code Playgroud)
当我调试dlg-> close()时返回true并且命中了删除代码(dlg).文件夹选择器对话框仍未关闭.
我正在使用Ubuntu 11.10 64位操作系统.使用存储库中的Qt库.
我的最终目的是显示文件夹选择器对话框,一旦选择了文件夹,对话框应该关闭.之后,处理应该继续.这该怎么做?
提前致谢.
即使QFileDialog::getExistingDirectory是静态的并且不需要QFileDialog对象工作,它也应该在最终选择目录时关闭对话框窗口.默认情况下,该函数尝试打开本机文件对话框窗口,这似乎在某些平台上会导致一些问题.
您应该尝试通过添加选项强制非本机对话框DontUseNativeDialog:
QString dir = QFileDialog::getExistingDirectory(
this,
tr("Choose folder"),
QDesktopServices::storageLocation(QDesktopServices::HomeLocation),
QFileDialog::ShowDirsOnly | QFileDialog::DontUseNativeDialog);
Run Code Online (Sandbox Code Playgroud)
并删除另外两行(使用new QFileDialog和if(dlg->close()) ...).