code: def create_action(self):
          
          output = {}
  
          act = QAction(QIcon(ICON['open_rec']), 'Open Dataset...', self)
          act.setShortcut(QKeySequence.Open)
          act.triggered.connect(self.open_dataset)
          output['open_dataset'] = act
  
          max_dataset_history = self.parent.value('max_dataset_history')
          recent_recs = keep_recent_datasets(max_dataset_history)
  
          act = []
          for one_recent_rec in recent_recs:
              act_recent = QAction(one_recent_rec, self)
              act_recent.triggered.connect(partial(self.open_dataset,
                                                   one_recent_rec))
              act.append(act_recent)
          output['open_recent'] = act
  
          act = QAction('Export dataset...', self)
          act.triggered.connect(self.parent.show_export_dataset_dialog)
          act.setEnabled(False)
          output['export'] = act
  
          self.action = output
docs: Create actions associated with this widget.
  
          Notes
          -----
          I think that this should be a function or a property.
  
          The good thing about the property is that it is updated every time you
          run it (for example, if you change some parameters in the settings).
          The main drawback is that you cannot reference back to the QAction, as
          it creates new ones every time.