- Qt 5.15
- Qt WebEngine
- Qt WebEngine Widgets Examples
- WebEngine Widgets Minimal Example
- Qt 5.15.19 Reference Documentation

# WebEngine Widgets Minimal Example

Displays a web page using Qt WebEngine Widgets.

WebEngine Widgets Minimal Example demonstrates how to use QWebEngineView 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.

#### Running the Example

To run the example from Qt Creator, open the Welcome mode and select the example from Examples. For more information, visit Building and Running an Example.

#### The Code

We first define a `commandLineUrlArgument` function that returns the URL to open. This is either the first positional argument given on the command line, or `https://www.qt.io` as a fallback.

     #include <QApplication>
     #include <QWebEngineView>

     QUrl commandLineUrlArgument()
     {
         const QStringList args = QCoreApplication::arguments();
         for (const QString &arg : args.mid(1)) {
             if (!arg.startsWith(QLatin1Char('-')))
                 return QUrl::fromUserInput(arg);
         }
         return QUrl(QStringLiteral("https://www.qt.io"));
     }

In the `main` function we first set the QCoreApplication::organizationName property. This affects the locations where Qt WebEngine stores persistent and cached data (see also QWebEngineProfile::cachePath and QWebEngineProfile::persistentStoragePath).

We also set the Qt::AA_EnableHighDpiScaling attribute. This lets the web view automatically scale on high-dpi displays.

Next, we instantiate a QApplication and a QWebEngineView. The URL to load is taken from `commandLineUrlArgument` and loaded by calling QWebEngineView::setUrl. The view widget is given a reasonable default size, and shown. Finally, QApplication::exec() launches the main event loop.

     int main(int argc, char *argv[])
     {
         QCoreApplication::setOrganizationName("QtExamples");
         QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
         QApplication app(argc, argv);

         QWebEngineView view;
         view.setUrl(commandLineUrlArgument());
         view.resize(1024, 750);
         view.show();

         return app.exec();
     }

#### Requirements

The example requires a working internet connection to render the Qt Homepage. An optional system proxy should be picked up automatically. However, for proxies that require a username or password, you need to connect to QWebEnginePage::proxyAuthenticationRequired.

Qt WebEngine Widgets uses the Qt Quick Scene Graph to compose the page. Therefore, OpenGL support is required.

Example project @ code.qt.io