docs: def qteSetWidgetSignature(self, widgetSignatures: (str, tuple, list)):
          """
          Specify the widget signatures with which this macro is
          compatible.
  
          Qtmacs uses this information at run time to determine if this
          macro is compatible with a particular widget, as specified by
          the widget's signature. Note that this function overwrites all
          previously set values.
  
          |Args|
  
          * ``*widgetSignatures`` (**str, tuple, list**): widget signatures
            as a string, or tuple/list of strings.
  
          |Returns|
  
          * **None**
  
          |Raises|
  
          * **QtmacsArgumentError** if at least one argument has an invalid type.
          """
  
          # Convert the argument to a tuple if it is not already a tuple
          # or list.
          if not isinstance(widgetSignatures, (tuple, list)):
              widgetSignatures = widgetSignatures,
  
          # Ensure that all arguments in the tuple/list are strings.
          for idx, val in enumerate(widgetSignatures):
              if not isinstance(val, str):
                  args = ('widgetSignatures', 'str', inspect.stack()[0][3])
                  raise QtmacsArgumentError(*args)
  
          # Store the compatible widget signatures as a tuple (of strings).
          self._qteWidgetSignatures = tuple(widgetSignatures)