How to add css stylesheet to a QWebEngineView?
Solved
General and Desktop
-
I'm trying to follow this Qt example for adding
CSS
stylesheet to aQWebEngineView
, however, I'm getting this error:use of undefined type 'QWebEngineScriptCollection'
at the line
ui.webEngineView->page()->scripts().insert(script);
What I'm missing?
Testing usingqt 6.4
,Visual Studio 2022
, the project can be reproduced by simply adding aQWebEngineView
to the ui, and#include "stdafx.h" #include "MainWindow.h" #include <QWebEngineScript> void MainWindow::insertStyleSheet(const QString& name, const QString& source, bool immediately) { QWebEngineScript script; QString s = QString::fromLatin1("(function() {"\ " css = document.createElement('style');"\ " css.type = 'text/css';"\ " css.id = '%1';"\ " document.head.appendChild(css);"\ " css.innerText = '%2';"\ "})()").arg(name).arg(source.simplified()); if (immediately) ui.webEngineView->page()->runJavaScript(s, QWebEngineScript::ApplicationWorld); script.setName(name); script.setSourceCode(s); script.setInjectionPoint(QWebEngineScript::DocumentReady); script.setRunsOnSubFrames(true); script.setWorldId(QWebEngineScript::ApplicationWorld); ui.webEngineView->page()->scripts().insert(script); } MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); }