i think you can use the extension [SlicerParallelProcessing] to put the complex computation in that,and the main process listen to the sub process when it finished,that won’t cause a spin busy cursor.
but i encount a problem when i import qt in [SlicerParallelProcessing],the sub process stop with error , i dont’t know why @pieper
ParallelProcessing uses PythonSlicer by default so it can communicate via stdin/stdout of the subprocess. if you have a use case that requires Qt, you could start Slicer --no-main-window instead, but you’d need to implement a different communication strategy since the main Slicer app doesn’t communicate via stdin/stdout (although I wish it did and perhaps we should implement that). An option for communicating a helper Slicer background process would be to run with the WebServer in either the helper or the main Slicer and passing commands and data back and forth via http.