''' Created on 15/06/2018 @author: https://robonobodojo.wordpress.com/2017/10/03/loading-a-pyside-ui-via-a-class/ ''' from PySide.QtUiTools import QUiLoader from PySide.QtCore import QMetaObject class UiLoader(QUiLoader): def __init__(self, base_instance): QUiLoader.__init__(self, base_instance) self.base_instance = base_instance def createWidget(self, class_name, parent=None, name=''): if parent is None and self.base_instance: return self.base_instance else: # create a new widget for child widgets widget = QUiLoader.createWidget(self, class_name, parent, name) if self.base_instance: setattr(self.base_instance, name, widget) return widget def loadUi(ui_file, base_instance=None): loader = UiLoader(base_instance) widget = loader.load(ui_file) QMetaObject.connectSlotsByName(widget) return widget