Qt 5.13 | Qt WebEngine | WebEngine Widgets Minimal Example

Qt 5.13.2 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