doEvents equivalent ?

I am executing a lengthier ruby script from a text file via eval() that has a couple of tasks to complete. At every task completion, I would like to bring up a QDialog with a few buttons and checkboxes etc. However, to pause and wait for the user to click "continue", I need to jump into some sort of a loop that does nothing but sleep. Unfortunately, sleep() occupies 100% of the main thread, so the loop always hangs up everything. VB has doEvents that checks for events that happened, and I can pop that into a loop and then it effectively lowers the execution priority of that looping thread. Does something like that exist in ruby/Klayout ?

Alternatively, a customized MessageBox may work nicely, because that halts the main thread. However, I can't seem to find a way of moving that to off to the side, like with setGeometry() for QDialog. Does anyone know how to do that ?

Thank you !



  • Hi Thomas,

    You should be able to execute a QDialog in a blocking ("modal") fashion by calling "exec" on the dialog. Did you try this?


Sign In or Register to comment.