I have a very strange problem, where calls to functions like 
QMessageBox::question() or QMessageBox::exec() or 
FileDialog::getOpenFileName() (and other cases where dialogs create 
their own, local event loops) will return immediately without waiting 
for the user to do any input first.

Even weirder, in the case of QMessageBox::question() and 
QMessageBox::exec(), even though the call returns immediately, the 
dialog is still open and responsive, waiting for the user to make a 
choice.  For example:

   QMessageBox* msgBox = new QMessageBox(...)
   msgBox.exec();
   qDebug() << "After";

The above code will print "After" on stderr even though the message box 
is still visible and none of the buttons have been clicked.

One unusual thing about the application in question is that it "blocks" 
all the time (it has to) and moves things along with:

   qApp->sendPostedEvents(0, QEvent::DeferredDelete);
   qApp->sendPostedEvents();
   qApp->processEvents(QEventLoop::WaitForMoreEvents
                       | QEventLoop::AllEvents);
   qApp->sendPostedEvents();

However, I don't see how this would cause the strange behavior with 
dialogs, since they have their own, local event loops.

Can anyone think of anything that could be causing this?  I've been 
altering code all day long in order to track this down, and I'm at a 
point where shooting myself in the head starts to sound attractive :-P

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

Reply via email to