WebEngine Widgets Minimal Example▲
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 &
amp;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).
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"
);
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.