# The PEP 484 type hints stub file for the QtQuickWidgets module.
#
# Generated by SIP 6.16.1
#
# Copyright (c) 2026 Riverbank Computing Limited <info@riverbankcomputing.com>
# 
# This file is part of PyQt6.
# 
# This file may be used under the terms of the GNU General Public License
# version 3.0 as published by the Free Software Foundation and appearing in
# the file LICENSE included in the packaging of this file.  Please review the
# following information to ensure the GNU General Public License version 3.0
# requirements will be met: http://www.gnu.org/copyleft/gpl.html.
# 
# If you do not wish to use this file under the terms of the GPL version 3.0
# then you may purchase a commercial license.  For more information contact
# info@riverbankcomputing.com.
# 
# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.


import collections.abc, re, typing, enum

try:
    from warnings import deprecated
except ImportError:
    pass

import PyQt6.sip

from PyQt6 import QtCore
from PyQt6 import QtGui
from PyQt6 import QtNetwork
from PyQt6 import QtQml
from PyQt6 import QtQuick
from PyQt6 import QtWidgets

# Support for QDate, QDateTime and QTime.
import datetime

# Convenient type aliases.
PYQT_SIGNAL = typing.Union[QtCore.pyqtSignal, QtCore.pyqtBoundSignal]
PYQT_SLOT = typing.Union[collections.abc.Callable[..., Any], QtCore.pyqtBoundSignal]


class QQuickWidget(QtWidgets.QWidget):

    class Status(enum.Enum):
        Null = ... # type: QQuickWidget.Status
        Ready = ... # type: QQuickWidget.Status
        Loading = ... # type: QQuickWidget.Status
        Error = ... # type: QQuickWidget.Status

    class ResizeMode(enum.Enum):
        SizeViewToRootObject = ... # type: QQuickWidget.ResizeMode
        SizeRootObjectToView = ... # type: QQuickWidget.ResizeMode

    @typing.overload
    def __init__(self, parent: QtWidgets.QWidget|None = ...) -> None: ...
    @typing.overload
    def __init__(self, engine: QtQml.QQmlEngine|None, parent: QtWidgets.QWidget|None) -> None: ...
    @typing.overload
    def __init__(self, source: QtCore.QUrl, parent: QtWidgets.QWidget|None = ...) -> None: ...
    @typing.overload
    def __init__(self, uri: QtCore.QByteArray|bytes|bytearray|memoryview|str|None, typeName: QtCore.QByteArray|bytes|bytearray|memoryview|str|None, parent: QtWidgets.QWidget|None = ...) -> None: ...

    def loadFromModule(self, uri: QtCore.QByteArray|bytes|bytearray|memoryview|str|None, typeName: QtCore.QByteArray|bytes|bytearray|memoryview|str|None) -> None: ...
    def setInitialProperties(self, initialProperties: dict[str|None, typing.Any]) -> None: ...
    def quickWindow(self) -> QtQuick.QQuickWindow|None: ...
    def setClearColor(self, color: QtGui.QColor|QtCore.Qt.GlobalColor|int) -> None: ...
    def grabFramebuffer(self) -> QtGui.QImage: ...
    def focusNextPrevChild(self, next: bool) -> bool: ...
    def paintEvent(self, event: QtGui.QPaintEvent|None) -> None: ...
    def dropEvent(self, a0: QtGui.QDropEvent|None) -> None: ...
    def dragLeaveEvent(self, a0: QtGui.QDragLeaveEvent|None) -> None: ...
    def dragMoveEvent(self, a0: QtGui.QDragMoveEvent|None) -> None: ...
    def dragEnterEvent(self, a0: QtGui.QDragEnterEvent|None) -> None: ...
    def focusOutEvent(self, event: QtGui.QFocusEvent|None) -> None: ...
    def focusInEvent(self, event: QtGui.QFocusEvent|None) -> None: ...
    def event(self, a0: QtCore.QEvent|None) -> bool: ...
    def wheelEvent(self, a0: QtGui.QWheelEvent|None) -> None: ...
    def hideEvent(self, a0: QtGui.QHideEvent|None) -> None: ...
    def showEvent(self, a0: QtGui.QShowEvent|None) -> None: ...
    def mouseDoubleClickEvent(self, a0: QtGui.QMouseEvent|None) -> None: ...
    def mouseMoveEvent(self, a0: QtGui.QMouseEvent|None) -> None: ...
    def mouseReleaseEvent(self, a0: QtGui.QMouseEvent|None) -> None: ...
    def mousePressEvent(self, a0: QtGui.QMouseEvent|None) -> None: ...
    def keyReleaseEvent(self, a0: QtGui.QKeyEvent|None) -> None: ...
    def keyPressEvent(self, a0: QtGui.QKeyEvent|None) -> None: ...
    def timerEvent(self, a0: QtCore.QTimerEvent|None) -> None: ...
    def resizeEvent(self, a0: QtGui.QResizeEvent|None) -> None: ...
    sceneGraphError: typing.ClassVar[QtCore.pyqtSignal]
    statusChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setSource(self, a0: QtCore.QUrl) -> None: ...
    def format(self) -> QtGui.QSurfaceFormat: ...
    def setFormat(self, format: QtGui.QSurfaceFormat) -> None: ...
    def initialSize(self) -> QtCore.QSize: ...
    def sizeHint(self) -> QtCore.QSize: ...
    def errors(self) -> list[QtQml.QQmlError]: ...
    def status(self) -> 'QQuickWidget.Status': ...
    def setResizeMode(self, a0: 'QQuickWidget.ResizeMode') -> None: ...
    def resizeMode(self) -> 'QQuickWidget.ResizeMode': ...
    def rootObject(self) -> QtQuick.QQuickItem|None: ...
    def rootContext(self) -> QtQml.QQmlContext|None: ...
    def engine(self) -> QtQml.QQmlEngine|None: ...
    def source(self) -> QtCore.QUrl: ...
