Hi,

it is always safe to call processEvents yourself. If the QProgressDialog has 
display issues it obviously does not get enough CPU to update itself, calling 
processEvents more often may(!!) help.

When I want to see a QProgressDialog early I normally force the issue by 
calling show() immediately. That's more reliable than leaving it to the 
internal heuristics. Especially if there may be a long time before the first 
call to processEvents.

If you are just copying a lot of data it may be a good idea to do this in a 
separate thread and just throw the updates (Qt::QueuedConnection!) to the GUI 
thread from time to time. This way the GUI remains fully intact. (Hint: if you 
delete objects during saving: use deleteLater; if you allocate new stuff do it 
in a slot with BlockingQueuedConnection or use moveToThread).



        Konrad

On Friday, Friday 15 November 2013 at 14:05, Etienne Sandré-Chardonnal wrote:
> Dear all,
> 
> I have a long file saving function (gigabytes - several minutes) and I am
> trying to use QProcessDialog. I am using it the Modal way as explained in
> the documentation. However, the dialog appears after about 50 seconds,
> despite having set the minimumDuration to 0, and called setValue() several
> times before.
> 
> Googling for the issue says I need to call QApplication::processEvents
> regularly in order for the GUI to refresh. However, the doc says :
> 
> "If the progress dialog is modal
> (seeQProgressDialog::QProgressDialog<qthelp://com.trolltech.qt.481/qdoc/qpr
> ogressdialog.html#QProgressDialog>()), setValue()
> callsQApplication::processEvents<qthelp://com.trolltech.qt.481/qdoc/qcorea
> pplication.html#processEvents>(), so take care that this does not cause
> undesirable re-entrancy in your code"
> 
> So I'm puzzled... Do I need to call it, or is it already called by
> setValue? In the example there are no explicit calls to processEvents().
> 
> Qt 4.8.1
> 
> Thanks!
> 
> Etienne

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to