Finally got the status update text lines to change properly with events: the trick was to call self.window().whatever_functions from MainWidget to utilize functions from MainWindow. MainWindow isn't exactly MainWidget's parent, so super() did not work. Global functions didn't do the trick either.