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 QQUICKVIEW_H
5#define QQUICKVIEW_H
6
7#include <QtQuick/qquickwindow.h>
8#include <QtCore/qurl.h>
9
10QT_BEGIN_NAMESPACE
11
12class QQmlEngine;
13class QQmlContext;
14class QQmlError;
15class QQuickItem;
16class QQmlComponent;
17
18class QQuickViewPrivate;
19class Q_QUICK_EXPORT QQuickView : public QQuickWindow
20{
21 Q_OBJECT
22 Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode)
23 Q_PROPERTY(Status status READ status NOTIFY statusChanged)
24 Q_PROPERTY(QUrl source READ source WRITE setSource DESIGNABLE true)
25public:
26 explicit QQuickView(QWindow *parent = nullptr);
27 QQuickView(QQmlEngine* engine, QWindow *parent);
28 explicit QQuickView(const QUrl &source, QWindow *parent = nullptr);
29 explicit QQuickView(QAnyStringView uri, QAnyStringView typeName, QWindow *parent = nullptr);
30 QQuickView(const QUrl &source, QQuickRenderControl *renderControl);
31 ~QQuickView() override;
32
33 QUrl source() const;
34
35 QQmlEngine* engine() const;
36 QQmlContext* rootContext() const;
37
38 QQuickItem *rootObject() const;
39
40 enum ResizeMode { SizeViewToRootObject, SizeRootObjectToView };
41 Q_ENUM(ResizeMode)
42 ResizeMode resizeMode() const;
43 void setResizeMode(ResizeMode);
44
45 enum Status { Null, Ready, Loading, Error };
46 Q_ENUM(Status)
47 Status status() const;
48
49 QList<QQmlError> errors() const;
50
51 QSize sizeHint() const;
52 QSize initialSize() const;
53
54public Q_SLOTS:
55 void setSource(const QUrl&);
56 void loadFromModule(QAnyStringView uri, QAnyStringView typeName);
57 void setInitialProperties(const QVariantMap &initialProperties);
58 void setContent(const QUrl& url, QQmlComponent *component, QObject *item);
59
60Q_SIGNALS:
61 void statusChanged(QQuickView::Status);
62
63private Q_SLOTS:
64 void continueExecute();
65
66protected:
67 void resizeEvent(QResizeEvent *) override;
68 void timerEvent(QTimerEvent*) override;
69
70 void keyPressEvent(QKeyEvent *) override;
71 void keyReleaseEvent(QKeyEvent *) override;
72 void mousePressEvent(QMouseEvent *) override;
73 void mouseReleaseEvent(QMouseEvent *) override;
74 void mouseMoveEvent(QMouseEvent *) override;
75private:
76 Q_DISABLE_COPY(QQuickView)
77 Q_DECLARE_PRIVATE(QQuickView)
78};
79
80QT_END_NAMESPACE
81
82#endif // QQUICKVIEW_H
83

Provided by KDAB

Privacy Policy
Learn to use CMake with our Intro Training
Find out more

source code of qtdeclarative/src/quick/items/qquickview.h