Heavy UI creation with progress displaying
-
wrote on 20 May 2016, 11:46 last edited by
Hi all.
In my application I am constructing heavy UI: a wizard with a lot of controls on many pages. This process involves DB access and a lot of other work. All this eventually causes GUI to freeze for quite long moments.
The question is how to show QProgressDialog during this process? I definitely need a second thread for widgets creation and preparation, but it is prohibited. How to workaround it? -
wrote on 20 May 2016, 12:17 last edited by Q139
You could call QApplication::processevents in while loop and use timer to execute it , while loops in same thread as ui block qt event handler and ui wont refresh.
But cannot use qtimer as it work with event handler. -
Hi all.
In my application I am constructing heavy UI: a wizard with a lot of controls on many pages. This process involves DB access and a lot of other work. All this eventually causes GUI to freeze for quite long moments.
The question is how to show QProgressDialog during this process? I definitely need a second thread for widgets creation and preparation, but it is prohibited. How to workaround it?wrote on 20 May 2016, 12:26 last edited by@Mahoney Hi! You could use two processes: One "loader" that shows a simple GUI with progress status during startup and a second process that is your actual wizzard. If you use QProcess for this then you'll have an easy to use communication channel between the processes for sending progress information.
-
@Mahoney Hi! You could use two processes: One "loader" that shows a simple GUI with progress status during startup and a second process that is your actual wizzard. If you use QProcess for this then you'll have an easy to use communication channel between the processes for sending progress information.
wrote on 20 May 2016, 12:31 last edited by@Wieland Well, that's a good idea. I'll try it out. BTW I even don't need interprocess data exchange, since I want to show progress bar in "marquee" mode.
1/4