def METHOD_NAME(self, delay: float, callback: Callable, *args, **kwargs) -> None:
    if delay < 0:
        raise ValueError("delay must be a non-negative value, but got [%s] instead." % delay)
    delay_to_use = None if delay <= 0 else delay
    event = _CallFunctionEvent(self, callback, args, kwargs,
                               delay = delay_to_use)
    if delay_to_use is None:
        QCoreApplication.instance().postEvent(self, event)
    else:
        self._scheduleDelayedCallEvent(event)