Как сделать QFileDialog не модальным в Qt5?

В предыдущих версиях 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-проекта. Заранее спасибо.

1

Решение

«Проблема» в том, что вы открываете диалоговое окно файла как модальное окно, вызывая QDialog::open() функция. Согласно документам Qt для QDialog::open():

Показывает диалог как модальное диалоговое окно, возвращаясь немедленно.

Чтобы сделать диалоговое окно файла немодальным, просто откройте его QDialog::show(),

4

Другие решения


По вопросам рекламы [email protected]