如何使QFileDialog不模态在Qt5

How to make QFileDialog not modal in Qt5?

本文关键字:Qt5 模态 何使 QFileDialog      更新时间:2023-10-16

在以前的Qt版本中,我们可以使用下面的文件对话框构造函数:

QFileDialog(QWidget * parent = 0, const char * name = 0, bool modal = FALSE)

所以,它看起来像是有可能使非模态文件对话框。但是现在(在Qt5中),我们在构造函数中没有这样的参数。QFileDialog也忽略了setWindowModality(Qt::NonModal);setModal(false);(我已经检查过了,如果windowModality() == Qt::NonModal && isModal() == false,文件对话框窗口仍然是模态)。

你有想法,如何使我的文件对话框非模态?

详细信息:我的文件对话框继承自QFileDialog。它完全像预期的那样工作。我唯一需要的是使其非模态,但我找不到解决方案的SO和qt项目。

"问题"是您通过调用QDialog::open()函数打开文件对话框作为模态窗口。根据QDialog::open()的Qt文档:

将对话框显示为窗口模态对话框,并立即返回。

要使文件对话框是非模态的,只需使用QDialog::show()打开它。