Cannot return from exec()



  • I use QDialog to implement interface for computationally extensive module. Dialog begins by exec() call.

    When pressing "Ok" button, application creates several posix threads.
    These threads connect with dialog with callback functions of type (particularly to send procents to dialog progress bar):

    void AcceptMessage(...)
    {
    qApp->processEvents();
    ...
    }

    With this processEvents() call I keep GUI responsible. That's why, when user presees "Cancel" I expect app to quit.

    void Dialog::Cancel()
    {
    ...
    close();
    // done();
    }

    Dialog closes but threads (detached) don't close and EventLoop continues to functionalize. What can be the reason?


  • Moderators

    Why do you need qApp->processEvents();?
    Is your dialog blocked by something?
    If your havy computation happens in other threads then there should not be any need for qApp->processEvents();


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.