How to make QFileDialog not modal in Qt5?

2019-08-08 23:05发布

In previous versions of Qt we were able to use following constructor of file dialog:

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

So, it looks like it was possible to make non-modal file dialog. But now (in Qt5) we haven't such parameters in constructor. Also QFileDialog ignores setWindowModality(Qt::NonModal); and setModal(false); (I've checked, that if windowModality() == Qt::NonModal && isModal() == false, file dialog window is still modal).

Do you have ideas, how to make my file dialog non-modal?

Details: my file dialog inherited from QFileDialog. It works absolutely as expected. The only thing I need is to make it non-modal, but I can't find solution on SO and on qt-project. Thank you in advance.

1条回答
别忘想泡老子
2楼-- · 2019-08-08 23:37

The "problem" is that you open the file dialog as a modal window by calling QDialog::open() function. According to the Qt docs for QDialog::open():

Shows the dialog as a window modal dialog, returning immediately.

To make the file dialog non modal simply open it with QDialog::show().

查看更多
登录 后发表回答