"""
PySide stub files generated by **IceSpringPySideStubs**

Home: https://baijifeilong.github.io/2022/01/06/ice-spring-pyside-stubs/index.html

Github: https://github.com/baijifeilong/IceSpringPySideStubs

PyPI(PySide2): https://pypi.org/project/IceSpringPySideStubs-PySide2

PyPI(PySide6): https://pypi.org/project/IceSpringPySideStubs-PySide6

PyPI(PyQt5): https://pypi.org/project/IceSpringPySideStubs-PyQt5

PyPI(PyQt6): https://pypi.org/project/IceSpringPySideStubs-PyQt6

Generated by BaiJiFeiLong@gmail.com

License: MIT
"""
import typing
import PyQt6.sip
from PyQt6.QtCore import *


class QBasicTimer(PyQt6.sip.simplewrapper):
    """
    https://doc.qt.io/qt-6/qbasictimer.html

    **Detailed Description**

    This is a fast, lightweight, and low-level class used by Qt internally. We
    recommend using the higher-level **QTimer**  class rather than this class if
    you want to use timers in your applications. Note that this timer is a
    repeating timer that will send subsequent timer events unless the **stop**
    () function is called.

    To use this class, create a QBasicTimer, and call its **start** () function
    with a timeout interval and with a pointer to a **QObject**  subclass. When
    the timer times out it will send a timer event to the **QObject**  subclass.
    The timer can be stopped at any time using **stop** (). **isActive** ()
    returns `true` for a timer that is running; i.e. it has been started, has
    not reached the timeout time, and has not been stopped. The timer's ID can
    be retrieved using **timerId** ().

    Objects of this class cannot be copied, but can be moved, so you can
    maintain a list of basic timers by holding them in container that supports
    move-only types, e.g. std::vector.

    The **Wiggly**  example uses QBasicTimer to repaint a widget at regular
    intervals.

    **See also** **QTimer** , **QTimerEvent** , **QObject::timerEvent** (),
    **Timers** , and **Wiggly Example** .
    """

    def __init__(self) -> None:
        """
        https://doc.qt.io/qt-6/qbasictimer.html#QBasicTimer-1

        **QBasicTimer::QBasicTimer()**

        Constructs a basic timer.

        **See also** **start** ().
        """
        ...

    def swap(self, other: "QBasicTimer") -> None:
        """
        https://doc.qt.io/qt-6/qbasictimer.html#swap

        **[since 5.14] void QBasicTimer::swap(QBasicTimer & other )**

        Swaps string **other** with this string, or **lhs** with **rhs**. This
        operation is very fast and never fails.

        This function was introduced in Qt 5.14.
        """
        ...

    def stop(self) -> None:
        """
        https://doc.qt.io/qt-6/qbasictimer.html#stop

        **void QBasicTimer::stop()**

        Stops the timer.

        **See also** **start** () and **isActive** ().
        """
        ...

    @typing.overload
    def start(self, msec: int, timerType: Qt.TimerType, obj: QObject) -> None:
        """
        https://doc.qt.io/qt-6/qbasictimer.html#start

        **void QBasicTimer::start(int msec , QObject * object )**

        Starts (or restarts) the timer with a **msec** milliseconds timeout. The
        timer will be a **Qt::CoarseTimer** . See **Qt::TimerType**  for
        information on the different timer types.

        The given **object** will receive timer events.

        **See also** **stop** (), **isActive** (), **QObject::timerEvent** (),
        and **Qt::CoarseTimer** .
        """
        ...

    @typing.overload
    def start(self, msec: int, obj: QObject) -> None:
        """
        https://doc.qt.io/qt-6/qbasictimer.html#start-1

        **void QBasicTimer::start(int msec , Qt::TimerType timerType , QObject *
        obj )**

        This is an overloaded function.

        Starts (or restarts) the timer with a **msec** milliseconds timeout and
        the given **timerType**. See **Qt::TimerType**  for information on the
        different timer types.

        **obj** will receive timer events.

        **See also** **stop** (), **isActive** (), **QObject::timerEvent** (),
        and **Qt::TimerType** .
        """
        ...

    def timerId(self) -> int:
        """
        https://doc.qt.io/qt-6/qbasictimer.html#timerId

        **int QBasicTimer::timerId() const**

        Returns the timer's ID.

        **See also** **QTimerEvent::timerId** ().
        """
        ...

    def isActive(self) -> bool:
        """
        https://doc.qt.io/qt-6/qbasictimer.html#isActive

        **bool QBasicTimer::isActive() const**

        Returns `true` if the timer is running and has not been stopped;
        otherwise returns `false`.

        **See also** **start** () and **stop** ().
        """
        ...
