QAction factory. All items created belong to the calling instance, i.e. created QAction parent is self.

def _create_action(
            self,
            icon_name: Optional[str],
            title: str,
            slot_function: Callable[[None], None],
            tool_tip: Optional[str]=None)-> QAction:
        """
        QAction factory. All items created belong to the calling instance, i.e. created QAction parent is self.
        """
        action = QAction(title, self)
        if icon_name:
            action.setIcon(QIcon.fromTheme(icon_name))
        action.triggered.connect(slot_function)
        if tool_tip:
            action.setToolTip(tool_tip)
        return action