def qteAddWidget(self, widgetObj: QtGui.QWidget, isFocusable: bool=True,
                     widgetSignature: str=None, autoBind: bool=True):
        widgetObj._qteAdmin = QtmacsAdminStructure(
            self, isFocusable=isFocusable)
        widgetObj._qteAdmin.appletID = self._qteAdmin.appletID
        widgetObj._qteAdmin.isQtmacsApplet = False
        widgetObj._qteAdmin.appletSignature = self.qteAppletSignature()
        if widgetSignature is None:
            widgetObj._qteAdmin.widgetSignature = widgetObj.__class__.__name__
        else:
            widgetObj._qteAdmin.widgetSignature = widgetSignature
        wo = widgetObj
        wo.qteSignature = wo._qteAdmin.widgetSignature
        wo.qteSetKeyFilterPolicy = wo._qteAdmin.qteSetKeyFilterPolicy
        del wo
        self._qteAdmin.widgetList.append(widgetObj)
        default_bind = qte_global.default_widget_keybindings
        if autoBind and (widgetObj.qteSignature in default_bind):
            module_name = default_bind[widgetObj.qteSignature]
            try:
                mod = importlib.import_module(module_name)
            except ImportError:
                msg = ('Module <b>{}</b> could not be imported.'.format(
                       module_name))
                self.qteLogger.exception(msg, stack_info=True)
                return
            if hasattr(mod, 'install_macros_and_bindings'):
                try:
                    mod.install_macros_and_bindings(widgetObj)
                except Exception:
                    msg = ('<b>install_macros_and_bindings</b> function'
                           ' in <b>{}</b> did not execute properly.')
                    msg = msg.format(module_name)
                    self.qteLogger.error(msg, stack_info=True)
            else:
                msg = ('Module <b>{}</b> has no '
                       '<b>install_macros_and_bindings</b>'
                       ' method'.format(module_name))
                self.qteLogger.error(msg)
        return widgetObj