gpt4 book ai didi

qt - 选择文件夹后 QFileDialog::getExistingDirectory 不关闭

转载 作者:行者123 更新时间:2023-12-04 13:21:46 25 4
gpt4 key购买 nike

在 Qt 中,

QFileDialog *dlg = new QFileDialog(); 
QDir dir = dlg->getExistingDirectory(this, tr("Choose folder"), qgetenv("HOME"));

打开文件夹选择对话框。一旦我选择了一个文件夹(按下选择按钮),该文件夹就不会自动关闭。所以我尝试了:

if(dlg->close() == true) delete(dlg);

当我调试 dlg->close() 时返回 true 并且代码 delete(dlg) 被命中。文件夹选择器对话框仍然没有关闭。

我使用的是 Ubuntu 11.10 64 位操作系统。使用存储库中的 Qt 库。

我的最终目标只是显示一个文件夹选择器对话框,一旦选择了文件夹,对话框就会关闭。之后处理应该继续。如何做到这一点?

提前致谢。

最佳答案

即使 QFileDialog::getExistingDirectory 是静态的并且不需要 QFileDialog 对象来工作,它也应该在最终选择目录时关闭对话框窗口。默认情况下,该函数会尝试打开 native 文件对话框窗口,这似乎会在某些平台上引起一些问题。

您应该尝试通过添加选项 DontUseNativeDialog 来强制使用非 native 对话框:

QString dir = QFileDialog::getExistingDirectory(
this,
tr("Choose folder"),
QDesktopServices::storageLocation(QDesktopServices::HomeLocation),
QFileDialog::ShowDirsOnly | QFileDialog::DontUseNativeDialog);

并删除另外两行(使用new QFileDialogif(dlg->close()) ...)。

关于qt - 选择文件夹后 QFileDialog::getExistingDirectory 不关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11284948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com