#qt #modal-dialog
#qt #модальный диалог
Вопрос:
У меня есть программа, которая выполняет некоторый процесс в главном окне, и мне нужно модальное диалоговое окно с некоторыми пользовательскими элементами, которые будут отображаться над ним, чтобы показать прогресс. Он также должен блокировать взаимодействие пользователя с главным окном. Основной процесс должен выполняться, пока отображается диалоговое окно. Какой способ лучше (в qt) для этой цели?
Комментарии:
1. Лучше, чем что, стандартный способ? Вы уже искали альтернативы?
2. Лучше — это просто другое слово для «лучшего» или «стандартного». Пожалуйста, имейте некоторую терпимость к не носителям английского языка. Мы стараемся изо всех сил. Спасибо.
Ответ №1:
На самом деле, это звучит довольно просто (если я не неправильно понял ваш вопрос).
QDialog my_progress_dialog( this );
my_progress_dialog.setModal( true );
my_progress_dialog.show();
Вызов show()
not exec()
оставит вас в основном цикле событий. В то же время, установка модального диалога блокирует весь пользовательский ввод в главное окно. Работа выполнена.
Вы смотрели QProgressDialog
? Он существует именно для этой цели.
Комментарии:
1. Даже не связано с тем, что мне было нужно, но вы ответили на два вопроса для меня, Робин!!! БОЖЕ! Я не знал, что есть разница между show() и exec() до ЭТОГО!