Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qquickwidget.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QQUICKWIDGET_H
5#define QQUICKWIDGET_H
6
7#include <QtWidgets/qwidget.h>
8#include <QtQuick/qquickwindow.h>
9#include <QtCore/qurl.h>
10#include <QtQuickWidgets/qtquickwidgetsglobal.h>
11#include <QtGui/qimage.h>
12
13QT_BEGIN_NAMESPACE
14
15class QQmlEngine;
16class QQmlContext;
17class QQmlError;
18class QQuickItem;
19class QQmlComponent;
20
22class Q_QUICKWIDGETS_EXPORT QQuickWidget : public QWidget
23{
24 Q_OBJECT
25 Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode)
26 Q_PROPERTY(Status status READ status NOTIFY statusChanged)
27 Q_PROPERTY(QUrl source READ source WRITE setSource DESIGNABLE true)
28
29public:
30 explicit QQuickWidget(QWidget *parent = nullptr);
31 QQuickWidget(QQmlEngine* engine, QWidget *parent);
32 explicit QQuickWidget(const QUrl &source, QWidget *parent = nullptr);
33 explicit QQuickWidget(QAnyStringView uri, QAnyStringView typeName, QWidget *parent = nullptr);
34 ~QQuickWidget() override;
35
36 QUrl source() const;
37
38 QQmlEngine* engine() const;
39 QQmlContext* rootContext() const;
40
41 QQuickItem *rootObject() const;
42
43 enum ResizeMode { SizeViewToRootObject, SizeRootObjectToView };
44 Q_ENUM(ResizeMode)
45 ResizeMode resizeMode() const;
46 void setResizeMode(ResizeMode);
47
48 enum Status { Null, Ready, Loading, Error };
49 Q_ENUM(Status)
50 Status status() const;
51
52 QList<QQmlError> errors() const;
53
54 QSize sizeHint() const override;
55 QSize initialSize() const;
56
57 void setFormat(const QSurfaceFormat &format);
58 QSurfaceFormat format() const;
59
60 QImage grabFramebuffer() const;
61
62 void setClearColor(const QColor &color);
63
64 QQuickWindow *quickWindow() const;
65
66public Q_SLOTS:
67 void setSource(const QUrl&);
68 void setContent(const QUrl& url, QQmlComponent *component, QObject *item);
69 void setInitialProperties(const QVariantMap &initialProperties);
70 void loadFromModule(QAnyStringView uri, QAnyStringView typeName);
71
72Q_SIGNALS:
73 void statusChanged(QQuickWidget::Status);
74 void sceneGraphError(QQuickWindow::SceneGraphError error, const QString &message);
75
76private Q_SLOTS:
77 // ### Qt 6: make these truly private slots through Q_PRIVATE_SLOT
78 void continueExecute();
79 void createFramebufferObject();
80 void destroyFramebufferObject();
81 void triggerUpdate();
82 void propagateFocusObjectChanged(QObject *focusObject);
83
84protected:
85 void resizeEvent(QResizeEvent *) override;
86 void timerEvent(QTimerEvent*) override;
87
88 void keyPressEvent(QKeyEvent *) override;
89 void keyReleaseEvent(QKeyEvent *) override;
90 void mousePressEvent(QMouseEvent *) override;
91 void mouseReleaseEvent(QMouseEvent *) override;
92 void mouseMoveEvent(QMouseEvent *) override;
93 void mouseDoubleClickEvent(QMouseEvent *) override;
94
95 void showEvent(QShowEvent *) override;
96 void hideEvent(QHideEvent *) override;
97
98 void focusInEvent(QFocusEvent * event) override;
99 void focusOutEvent(QFocusEvent * event) override;
100
101#if QT_CONFIG(wheelevent)
102 void wheelEvent(QWheelEvent *) override;
103#endif
104
105#if QT_CONFIG(quick_draganddrop)
106 void dragEnterEvent(QDragEnterEvent *) override;
107 void dragMoveEvent(QDragMoveEvent *) override;
108 void dragLeaveEvent(QDragLeaveEvent *) override;
109 void dropEvent(QDropEvent *) override;
110#endif
111
112 bool event(QEvent *) override;
113 void paintEvent(QPaintEvent *event) override;
114 bool focusNextPrevChild(bool next) override;
115
116private:
117 Q_DISABLE_COPY(QQuickWidget)
118 Q_DECLARE_PRIVATE(QQuickWidget)
119};
120
121QT_END_NAMESPACE
122
123#endif // QQuickWidget_H
The QQuickWidget class provides a widget for displaying a Qt Quick user interface.