在以前的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()
打开它。