Reputation: 389
I'm trying to follow this Qt example for adding CSS
stylesheet to a QWebEngineView
, 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 using qt 6.4
Visual Studio 2022
, the project can be reproduced by simply adding a QWebEngineView
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);
}
Upvotes: 0
Views: 424
Reputation: 389
Fixed it. The correct include is:
#include <QtWebEngineCore/qwebenginescriptcollection.h>
Upvotes: 0