"""
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

Generated by BaiJiFeiLong@gmail.com

Licence: GPLv3
"""
"""
This file contains the exact signatures for all functions in module
PySide6.QtCore, except for defaults which are replaced by "...".
"""
from typing import List, Sequence, Tuple, overload
import PySide6.QtCore

bytes = str


class QVersionNumber(object):
    """
    https://doc.qt.io/qt-6/qversionnumber.html

    **Detailed Description**

    **QVersionNumber**  version(1, 2, 3);  // 1.2.3
    """

    @overload
    def __init__(self) -> None:
        """
        https://doc.qt.io/qt-6/qversionnumber.html#QVersionNumber

        **QVersionNumber::QVersionNumber()**

        Produces a null version.

        **See also** **isNull** ().
        """
        ...

    @overload
    def __init__(self, maj: int) -> None:
        """
        https://doc.qt.io/qt-6/qversionnumber.html#QVersionNumber-1

        **QVersionNumber::QVersionNumber(const QList<int> & seg )**

        Constructs a version number from the list of numbers contained in
        **seg**.
        """
        ...

    @overload
    def __init__(self, maj: int, min: int) -> None:
        """
        https://doc.qt.io/qt-6/qversionnumber.html#QVersionNumber-2

        **QVersionNumber::QVersionNumber(QList<int> && seg )**

        Move-constructs a version number from the list of numbers contained in
        **seg**.

        This constructor is only enabled if the compiler supports C++11 move
        semantics.
        """
        ...

    @overload
    def __init__(self, maj: int, min: int, mic: int) -> None:
        """
        https://doc.qt.io/qt-6/qversionnumber.html#QVersionNumber-3

        **QVersionNumber::QVersionNumber(std::initializer_list<int> args )**

        Construct a version number from the std::initializer_list specified by
        **args**.

        This constructor is only enabled if the compiler supports C++11
        initializer lists.
        """
        ...

    @overload
    def __init__(self, seg: Sequence[int]) -> None:
        """
        https://doc.qt.io/qt-6/qversionnumber.html#QVersionNumber-4

        **QVersionNumber::QVersionNumber(int maj )**

        Constructs a QVersionNumber consisting of just the major version number
        **maj**.
        """
        ...

    @staticmethod
    def __copy__() -> None:
        ...

    @staticmethod
    def commonPrefix(
        v1: PySide6.QtCore.QVersionNumber, v2: PySide6.QtCore.QVersionNumber
    ) -> PySide6.QtCore.QVersionNumber:
        """
        https://doc.qt.io/qt-6/qversionnumber.html#commonPrefix

        **[static] QVersionNumber QVersionNumber::commonPrefix(const
        QVersionNumber & v1 , const QVersionNumber & v2 )**

        **QVersionNumber**  QVersionNumber::commonPrefix(const
        **QVersionNumber**  &v1, const **QVersionNumber**  &v2)

        Returns a version number that is a parent version of both **v1** and
        **v2**.

        **See also** **isPrefixOf** ().
        """
        ...

    @staticmethod
    def compare(
        v1: PySide6.QtCore.QVersionNumber, v2: PySide6.QtCore.QVersionNumber
    ) -> int:
        """
        https://doc.qt.io/qt-6/qversionnumber.html#compare

        **[static] int QVersionNumber::compare(const QVersionNumber & v1 , const
        QVersionNumber & v2 )**

        Compares **v1** with **v2** and returns an integer less than, equal to,
        or greater than zero, depending on whether **v1** is less than, equal
        to, or greater than **v2** , respectively.

        Comparisons are performed by comparing the segments of **v1** and **v2**
        starting at index 0 and working towards the end of the longer list.

        **QVersionNumber**  v1(1, 2);
            **QVersionNumber**  v2(1, 2, 0);
        int compare = **QVersionNumber** ::compare(v1, v2); // compare == -1
        """
        ...

    @staticmethod
    def fromString(string: str) -> Tuple[PySide6.QtCore.QVersionNumber, int]:
        """
        https://doc.qt.io/qt-6/qversionnumber.html#fromString

        **[static] QVersionNumber QVersionNumber::fromString(const QString &
        string , int * suffixIndex = nullptr)**

        Constructs a **QVersionNumber**  from a specially formatted **string**
        of non-negative decimal numbers delimited by a period (`.`).

        Once the numerical segments have been parsed, the remainder of the
        string is considered to be the suffix string. The start index of that
        string will be stored in **suffixIndex** if it is not null.

        **QString**  string("5.4.0-alpha");
            int suffixIndex;
        **QVersionNumber**  version = **QVersionNumber** ::fromString(string,
        &suffixIndex);
            // version is 5.4.0
            // suffixIndex is 5

        **See also** **isNull** ().
        """
        ...

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

        **bool QVersionNumber::isNormalized() const**

        Returns `true` if the version number does not contain any trailing
        zeros, otherwise returns `false`.

        **See also** **normalized** ().
        """
        ...

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

        **bool QVersionNumber::isNull() const**

        Returns `true` if there are zero numerical segments, otherwise returns
        `false`.

        **See also** **segments** ().
        """
        ...

    def isPrefixOf(self, other: PySide6.QtCore.QVersionNumber) -> bool:
        """
        https://doc.qt.io/qt-6/qversionnumber.html#isPrefixOf

        **bool QVersionNumber::isPrefixOf(const QVersionNumber & other ) const**

        Returns `true` if the current version number is contained in the
        **other** version number, otherwise returns `false`.

        **QVersionNumber**  v1(5, 3);
            **QVersionNumber**  v2(5, 3, 1);
        bool value = v1.isPrefixOf(v2); // true

        **See also** **commonPrefix** ().
        """
        ...

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

        **int QVersionNumber::majorVersion() const**

        Returns the major version number, that is, the first segment. This
        function is equivalent to **segmentAt** (0). If this **QVersionNumber**
        object is null, this function returns 0.

        **See also** **isNull** () and **segmentAt** ().
        """
        ...

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

        **int QVersionNumber::microVersion() const**

        Returns the micro version number, that is, the third segment. This
        function is equivalent to **segmentAt** (2). If this **QVersionNumber**
        object does not contain a micro number, this function returns 0.

        **See also** **isNull** () and **segmentAt** ().
        """
        ...

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

        **int QVersionNumber::minorVersion() const**

        Returns the minor version number, that is, the second segment. This
        function is equivalent to **segmentAt** (1). If this **QVersionNumber**
        object does not contain a minor number, this function returns 0.

        **See also** **isNull** () and **segmentAt** ().
        """
        ...

    def normalized(self) -> PySide6.QtCore.QVersionNumber:
        """
        https://doc.qt.io/qt-6/qversionnumber.html#normalized

        **QVersionNumber QVersionNumber::normalized() const**

        Returns an equivalent version number but with all trailing zeros
        removed.

        To check if two numbers are equivalent, use normalized() on both version
        numbers before performing the compare.

        **QVersionNumber**  v1(5, 4);
            **QVersionNumber**  v2(5, 4, 0);
        bool equivalent = v1.normalized() == v2.normalized();
            bool equal =
        v1 == v2;
            // equivalent is true
            // equal is false
        """
        ...

    def segmentAt(self, index: int) -> int:
        """
        https://doc.qt.io/qt-6/qversionnumber.html#segmentAt

        **int QVersionNumber::segmentAt(int index ) const**

        Returns the segment value at **index**. If the index does not exist,
        returns 0.

        **See also** **segments** () and **segmentCount** ().
        """
        ...

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

        **int QVersionNumber::segmentCount() const**

        Returns the number of integers stored in **segments** ().

        **See also** **segments** ().
        """
        ...

    def segments(self) -> List[int]:
        """
        https://doc.qt.io/qt-6/qversionnumber.html#segments

        **QList<int> QVersionNumber::segments() const**

        Returns all of the numerical segments.

        **See also** **majorVersion** (), **minorVersion** (), and
        **microVersion** ().
        """
        ...

    def toString(self) -> str:
        """
        https://doc.qt.io/qt-6/qversionnumber.html#toString

        **QString QVersionNumber::toString() const**

        Returns a string with all of the segments delimited by a period (`.`).

        **See also** **majorVersion** (), **minorVersion** (), **microVersion**
        (), and **segments** ().
        """
        ...
