code: def get_quality(self, qual_idx=None):
          
          if self.annot is None:  # remove if buttons are disabled
              msg = 'No score file loaded'
              error_dialog = QErrorMessage()
              error_dialog.setWindowTitle('Error getting quality')
              error_dialog.showMessage(msg)
              error_dialog.exec()
              lg.debug(msg)
              return
  
          window_start = self.parent.value('window_start')
          window_length = self.parent.value('window_length')
  
          try:
              self.annot.set_stage_for_epoch(window_start,
                                             QUALIFIERS[qual_idx],
                                             attr='quality')
  
          except KeyError:
              msg = ('The start of the window does not correspond to any epoch ' +
                     'in sleep scoring file')
              error_dialog = QErrorMessage()
              error_dialog.setWindowTitle('Error getting quality')
              error_dialog.showMessage(msg)
              error_dialog.exec()
              lg.debug(msg)
  
          else:
              lg.debug('User staged ' + str(window_start) + ' as ' +
                       QUALIFIERS[qual_idx])
  
              self.set_quality_index()
              self.parent.overview.mark_quality(window_start, window_length,
                                                QUALIFIERS[qual_idx])
              self.display_stats()
              self.parent.traces.page_next()
docs: Get the signal qualifier, using shortcuts or combobox.