"""
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
from PyQt6 import QtGui
from PyQt6 import QtCore
from PyQt6.QtWidgets import *


class QFocusFrame(QWidget):
    """
    https://doc.qt.io/qt-6/qfocusframe.html

    **Detailed Description**

    Normally an application will not need to create its own QFocusFrame as
    **QStyle**  will handle this detail for you. A style writer can optionally
    use a QFocusFrame to have a focus area outside of the widget's paintable
    geometry. In this way space need not be reserved for the widget to have
    focus but only set on a **QWidget**  with **QFocusFrame::setWidget** . It
    is, however, legal to create your own QFocusFrame on a custom widget and set
    its geometry manually via **QWidget::setGeometry**  however you will not get
    auto-placement when the focused widget changes size or placement.
    """

    def __init__(self, parent: typing.Optional[QWidget] = ...) -> None:
        """
        https://doc.qt.io/qt-6/qfocusframe.html#QFocusFrame

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

        Constructs a QFocusFrame.

        The focus frame will not monitor **parent** for updates but rather can
        be placed manually or by using **QFocusFrame::setWidget** . A
        QFocusFrame sets **Qt::WA_NoChildEventsForParent**  attribute; as a
        result the parent will not receive a **QEvent::ChildAdded**  event, this
        will make it possible to manually set the geometry of the QFocusFrame
        inside of a **QSplitter**  or other child event monitoring widget.

        **See also** **QFocusFrame::setWidget** ().
        """
        ...

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

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

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

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

        **[override virtual protected] bool QFocusFrame::event(QEvent * e )**

        Reimplements: **QWidget::event** (QEvent *event).
        """
        ...

    def eventFilter(self, a0: QtCore.QObject, a1: QtCore.QEvent) -> bool:
        """
        https://doc.qt.io/qt-6/qfocusframe.html#eventFilter

        **[override virtual protected] bool QFocusFrame::eventFilter(QObject * o
        , QEvent * e )**

        Reimplements: **QObject::eventFilter** (QObject *watched, QEvent
        *event).
        """
        ...

    def initStyleOption(self, option: "QStyleOption") -> None:
        """
        https://doc.qt.io/qt-6/qfocusframe.html#initStyleOption

        **[virtual protected] void QFocusFrame::initStyleOption(QStyleOption *
        option ) const**

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

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

    def widget(self) -> QWidget:
        """
        https://doc.qt.io/qt-6/qfocusframe.html#widget

        **QWidget *QFocusFrame::widget() const**

        Returns the currently monitored widget for automatically resize and
        update.

        **See also** **QFocusFrame::setWidget** ().
        """
        ...

    def setWidget(self, widget: QWidget) -> None:
        """
        https://doc.qt.io/qt-6/qfocusframe.html#setWidget

        **void QFocusFrame::setWidget(QWidget * widget )**

        **QFocusFrame**  will track changes to **widget** and resize itself
        automatically. If the monitored widget's parent changes, **QFocusFrame**
        will follow the widget and place itself around the widget automatically.
        If the monitored widget is deleted, **QFocusFrame**  will set it to
        zero.

        **See also** **QFocusFrame::widget** ().
        """
        ...
