docs: def create_action(parent, text, shortcut=None, icon=None, tip=None,
                    toggled=None, triggered=None, data=None, menurole=None,
                    context=Qt.WindowShortcut):
      """Create a QAction"""
      action = QAction(text, parent)
      if triggered is not None:
          action.triggered.connect(triggered)
      if toggled is not None:
          action.toggled.connect(toggled)
          action.setCheckable(True)
      if icon is not None:
          action.setIcon(icon)
      if shortcut is not None:
          action.setShortcut(shortcut)
      if tip is not None:
          action.setToolTip(tip)
          action.setStatusTip(tip)
      if data is not None:
          action.setData(to_qvariant(data))
      if menurole is not None:
          action.setMenuRole(menurole)
      #TODO: Hard-code all shortcuts and choose context=Qt.WidgetShortcut
      # (this will avoid calling shortcuts from another dockwidget
      #  since the context thing doesn't work quite well with these widgets)
      action.setShortcutContext(context)
      return action