Qt modal dialog and main process

2019-02-21 20:44发布

问题:

I have a program which executes some process in main window and I need a modal dialog with some custom elements to be shown over it to show the progress. It also must block user interaction with main window. Main process should run while dialog is shown. Which way is better (in qt) for this purpose?

回答1:

Actually, this sounds kinda easy (unless I misunderstand your question).

QDialog my_progress_dialog( this );
my_progress_dialog.setModal( true );
my_progress_dialog.show();

Calling show() not exec() will leave you in the main eventloop. At the same time, setting the dialog modal blocks all user input to the main window. Job done.

Have you looked at QProgressDialog? It's there for exactly this purpose.