blob: 4fc62bddbf5ec9080381dcfc861938f1c78b7974 [file] [log] [blame]
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\example webengine/minimal
\title WebEngine Qt Quick Minimal Example
\ingroup webengine-examples
\brief Displays a web page using the Qt Quick integration of \QWE.
\image minimal-example.png
\e {WebEngine Qt Quick Minimal Example} demonstrates how to use the
\l{WebEngineView} item to render a web page. It shows the minimum amount of
code needed to load and display an HTML page, and can be used as a basis for
further experimentation.
\include examples-run.qdocinc
\section1 C++ Code
In \c main.cpp we use only the QGuiApplication and QQmlApplicationEngine
classes. We also include \c qtwebengineglobal.h to be able to use
\l{QtWebEngine::initialize}.
\quotefromfile webengine/minimal/main.cpp
\skipto #include
\printto main
In the \c main function we first set the
\l{QCoreApplication::organizationName} property. This affects the locations
where \QWE stores persistent and cached data (see also
\l{WebEngineProfile::cachePath} and
\l{WebEngineProfile::persistentStoragePath}).
We also set the Qt::AA_EnableHighDpiScaling attribute. This lets the web
view automatically scale on high-dpi displays. Then we instantiate a
QGuiApplication object.
Next, we call \l{QtWebEngine::initialize}, which makes sure that OpenGL
contexts can be shared between the main process and the dedicated renderer
process (\c QtWebEngineProcess). This method needs to be called before
any OpenGL context is created.
Then we create a QQmlApplicationEngine, and tell it to load \c main.qml
from the \l{The Qt Resource System}{Qt Resource System}.
Finally, QGuiApplication::exec() launches the main event loop.
\printuntil }
\section1 QML Code
In \c main.qml we create the top level window, set a sensible default size
and make it visible. The window will be filled by a WebEngineView item
loading the \l{Qt Homepage}.
\quotefromfile webengine/minimal/main.qml
\skipto import
\printuntil }
\printline }
\section1 Requirements
The example requires a working internet connection to render the
\l{Qt Homepage}.
An optional system proxy should be picked up automatically.
*/