Location: Stomach Annotator for SPARC @ 9ea33dda840d / pysideuiutils / uic.py

Author:
rjag008 <rjag008@auckland.ac.nz>
Date:
2018-08-18 17:01:42+12:00
Desc:
Final Release
Permanent Source URI:
https://models.cellml.org/workspace/51d/rawfile/9ea33dda840d259caf68e26d21300bece4eeff3f/pysideuiutils/uic.py

'''
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