В предыдущих версиях 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()
функция. Согласно документам Qt для QDialog::open()
:
Показывает диалог как модальное диалоговое окно, возвращаясь немедленно.
Чтобы сделать диалоговое окно файла немодальным, просто откройте его QDialog::show()
,