in reply to Is there a way to free the Tk MainLoop without getting into parallel programming?
Depending on how long your calculations take the 'update' method mentioned above will keep the visual changes flowing, but your app will still appear to be unresponsive to mouse and keyboard events. As an alternative, if you can rewrite your routine to take smaller bites out of the computation when called repeatedly, then when the routine is finished with a bite, but not the complete calculation, it could put an event in the Tk event queue to call another iteration of itself. Your calculation may take slightly longer this way, but your UI would appear much more responsive.