"""
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.QtWidgets, except for defaults which are replaced by "...".
"""
from enum import Enum
from typing import Optional, overload
import PySide6.QtCore
import PySide6.QtGui
import PySide6.QtWidgets

bytes = str


class QSlider(PySide6.QtWidgets.QAbstractSlider):
    """
    https://doc.qt.io/qt-6/qslider.html

    **Detailed Description**

    ![](images/windows-slider.png)

    The slider is the classic widget for controlling a bounded value. It lets
    the user move a slider handle along a horizontal or vertical groove and
    translates the handle's position into an integer value within the legal
    range.

    QSlider has very few of its own functions; most of the functionality is in
    **QAbstractSlider** . The most useful functions are **setValue** () to set
    the slider directly to some value; **triggerAction** () to simulate the
    effects of clicking (useful for shortcut keys); **setSingleStep** (),
    **setPageStep** () to set the steps; and **setMinimum** () and
    **setMaximum** () to define the range of the scroll bar.

    QSlider provides methods for controlling tickmarks. You can use
    **setTickPosition** () to indicate where you want the tickmarks to be,
    **setTickInterval** () to indicate how many of them you want. the currently
    set tick position and interval can be queried using the **tickPosition** ()
    and **tickInterval** () functions, respectively.

    QSlider inherits a comprehensive set of signals:

    SignalDescription
    **valueChanged** ()Emitted when the slider's value has
    changed. The tracking() determines whether this signal is emitted during
    user interaction.
    **sliderPressed** ()Emitted when the user starts to drag
    the slider.
    **sliderMoved** ()Emitted when the user drags the slider.
    **sliderReleased** ()Emitted when the user releases the slider.

    QSlider only provides integer ranges. Note that although QSlider handles
    very large numbers, it becomes difficult for users to use a slider
    accurately for very large ranges.

    A slider accepts focus on Tab and provides both a mouse wheel and a keyboard
    interface. The keyboard interface is the following:

    * Left/Right move a horizontal slider by one single step.
      * Up/Down move a
    vertical slider by one single step.
      * PageUp moves up one page.
      *
    PageDown moves down one page.
      * Home moves to the start (minimum).
      * End
    moves to the end (maximum).

    **See also** **QScrollBar** , **QSpinBox** , **QDial** , **GUI Design
    Handbook: Slider** , and **Sliders Example** .
    """

    NoTicks: QSlider.TickPosition = ...
    TicksAbove: QSlider.TickPosition = ...
    TicksLeft: QSlider.TickPosition = ...
    TicksBelow: QSlider.TickPosition = ...
    TicksRight: QSlider.TickPosition = ...
    TicksBothSides: QSlider.TickPosition = ...

    class TickPosition(Enum):
        NoTicks: QSlider.TickPosition = ...
        TicksAbove: QSlider.TickPosition = ...
        TicksLeft: QSlider.TickPosition = ...
        TicksBelow: QSlider.TickPosition = ...
        TicksRight: QSlider.TickPosition = ...
        TicksBothSides: QSlider.TickPosition = ...

    @overload
    def __init__(
        self,
        orientation: PySide6.QtCore.Qt.Orientation,
        parent: Optional[PySide6.QtWidgets.QWidget] = ...,
    ) -> None:
        """
        https://doc.qt.io/qt-6/qslider.html#QSlider

        **QSlider::QSlider(QWidget * parent = nullptr)**

        Constructs a vertical slider with the given **parent**.
        """
        ...

    @overload
    def __init__(self, parent: Optional[PySide6.QtWidgets.QWidget] = ...) -> None:
        """
        https://doc.qt.io/qt-6/qslider.html#QSlider-1

        **QSlider::QSlider(Qt::Orientation orientation , QWidget * parent =
        nullptr)**

        Constructs a slider with the given **parent**. The **orientation**
        parameter determines whether the slider is horizontal or vertical; the
        valid values are **Qt::Vertical**  and **Qt::Horizontal** .
        """
        ...

    def event(self, event: PySide6.QtCore.QEvent) -> bool:
        """
        https://doc.qt.io/qt-6/qslider.html#event

        **[override virtual] bool QSlider::event(QEvent * event )**

        Reimplements: **QAbstractSlider::event** (QEvent *e).
        """
        ...

    def initStyleOption(self, option: PySide6.QtWidgets.QStyleOptionSlider) -> None:
        """
        https://doc.qt.io/qt-6/qslider.html#initStyleOption

        **[virtual protected] void QSlider::initStyleOption(QStyleOptionSlider *
        option ) const**

        Initialize **option** with the values from this **QSlider** . This
        method is useful for subclasses when they need a **QStyleOptionSlider**
        , but don't want to fill in all the information themselves.

        **See also** **QStyleOption::initFrom** ().
        """
        ...

    def minimumSizeHint(self) -> PySide6.QtCore.QSize:
        """
        https://doc.qt.io/qt-6/qslider.html#minimumSizeHint

        **[override virtual] QSize QSlider::minimumSizeHint() const**

        Reimplements an access function for property:
        **QWidget::minimumSizeHint** .
        """
        ...

    def mouseMoveEvent(self, ev: PySide6.QtGui.QMouseEvent) -> None:
        """
        https://doc.qt.io/qt-6/qslider.html#mouseMoveEvent

        **[override virtual protected] void QSlider::mouseMoveEvent(QMouseEvent
        * ev )**

        Reimplements: **QWidget::mouseMoveEvent** (QMouseEvent *event).
        """
        ...

    def mousePressEvent(self, ev: PySide6.QtGui.QMouseEvent) -> None:
        """
        https://doc.qt.io/qt-6/qslider.html#mousePressEvent

        **[override virtual protected] void QSlider::mousePressEvent(QMouseEvent
        * ev )**

        Reimplements: **QWidget::mousePressEvent** (QMouseEvent *event).
        """
        ...

    def mouseReleaseEvent(self, ev: PySide6.QtGui.QMouseEvent) -> None:
        """
        https://doc.qt.io/qt-6/qslider.html#mouseReleaseEvent

        **[override virtual protected] void
        QSlider::mouseReleaseEvent(QMouseEvent * ev )**

        Reimplements: **QWidget::mouseReleaseEvent** (QMouseEvent *event).
        """
        ...

    def paintEvent(self, ev: PySide6.QtGui.QPaintEvent) -> None:
        """
        https://doc.qt.io/qt-6/qslider.html#paintEvent

        **[override virtual protected] void QSlider::paintEvent(QPaintEvent * ev
        )**

        Reimplements: **QWidget::paintEvent** (QPaintEvent *event).
        """
        ...

    def setTickInterval(self, ti: int) -> None:
        """
        https://doc.qt.io/qt-6/qslider.html#tickInterval-prop

        **tickInterval : int**

        This property holds the interval between tickmarks

        This is a value interval, not a pixel interval. If it is 0, the slider
        will choose between singleStep and pageStep.

        The default value is 0.

        **Access functions:**

        int **tickInterval** () const
        void **setTickInterval** (int **ti** )

        **See also** **tickPosition** , **singleStep** , and **pageStep** .
        """
        ...

    def setTickPosition(self, position: PySide6.QtWidgets.QSlider.TickPosition) -> None:
        """
        https://doc.qt.io/qt-6/qslider.html#tickPosition-prop

        **tickPosition : TickPosition**

        This property holds the tickmark position for this slider

        The valid values are described by the **QSlider::TickPosition**  enum.

        The default value is **QSlider::NoTicks** .

        **Access functions:**

        QSlider::TickPosition **tickPosition** () const
        void
        **setTickPosition** (QSlider::TickPosition **position** )

        **See also** **tickInterval** .

        **Member Function Documentation**
        """
        ...

    def sizeHint(self) -> PySide6.QtCore.QSize:
        """
        https://doc.qt.io/qt-6/qslider.html#sizeHint

        **[override virtual] QSize QSlider::sizeHint() const**

        Reimplements an access function for property: **QWidget::sizeHint** .
        """
        ...

    def tickInterval(self) -> int:
        """
        https://doc.qt.io/qt-6/qslider.html#tickInterval-prop

        **tickInterval : int**

        This property holds the interval between tickmarks

        This is a value interval, not a pixel interval. If it is 0, the slider
        will choose between singleStep and pageStep.

        The default value is 0.

        **Access functions:**

        int **tickInterval** () const
        void **setTickInterval** (int **ti** )

        **See also** **tickPosition** , **singleStep** , and **pageStep** .
        """
        ...

    def tickPosition(self) -> PySide6.QtWidgets.QSlider.TickPosition:
        """
        https://doc.qt.io/qt-6/qslider.html#tickPosition-prop

        **tickPosition : TickPosition**

        This property holds the tickmark position for this slider

        The valid values are described by the **QSlider::TickPosition**  enum.

        The default value is **QSlider::NoTicks** .

        **Access functions:**

        QSlider::TickPosition **tickPosition** () const
        void
        **setTickPosition** (QSlider::TickPosition **position** )

        **See also** **tickInterval** .

        **Member Function Documentation**
        """
        ...
