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)