[Qt-interest] QWidget::setCursor() and qApp->processEvents()

Josh jnfo-c at grauman.com
Thu Jul 29 05:44:55 CEST 2010


Hello all,

Before I do some calculations in my program I want to set the cursor 
using: viewport()->setCursor(Qt::WaitCursor);

However, the cursor doesn't change because of the calculations. I don't 
want to call qApp->processEvents() during the calculations because I 
actually want the ui *not* to respond while the calculations are taking 
place. So I was able to get the cursor to update BEFORE the calculations 
as follows:

qApp->processEvents();
qApp->processEvents();
viewport()->setCursor(Qt::WaitCursor); 
for(int i=0; i<20; i++)
   qApp->processEvents();
do my calculations...

This is obviously a hack. I needed to call processEvents 20 times for the 
cursor to update. Any less and the cursor wouldn't update before my 
calculations. I would assume that on different machines I might need 
different number of calls to processEvents(), which is undesirable. Anyone 
have any ideas on the correct way to do this?

So in summary:
How can I make sure the cursor is changed before doing my calculations 
when I don't want to call processEvents() during my calculations?

Thanks!

Josh



More information about the Qt-interest-old mailing list