Compiling QtWebengine without QtQuick dependancy.
-
Just a note, the feature system is not fully tested as it would require way too many permutations.
Taking a look at the code again, it looks like qml is currently in fact not optional or would require changes to the sources.
-
May I ask again where and how to look, this way I can find information on my own next time I'm stuck :)
I see here that core_common.pri does not have flags to prevent qml and quick SUBDIRS
https://github.com/qt/qtwebengine/blob/badd899444e3eb597323864c4885493dea51564b/src/core/core_common.pri#L9By the way, adding
webengine-qml
results in configure to returnNote: The following modules are not being compiled in this configuration: webengine
-
You can start from the configure options.
-
@JulienMaille said in Compiling QtWebengine without QtQuick dependancy.:
I was wondering how I can do to remove ant dependancy to those module while preserving proper QtWebengine compilation.
Unfortunately, it's impossible to build Qt WebEngine without qtdeclarative.
QWebEngineView uses an internal QQuickWidget to render the browser content: https://github.com/qt/qtwebengine/blob/v5.15.18-lts/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp#L97-L98
Qt R&D tried but failed to find a way to remove QQuickWidget from QWebEngineView: https://bugreports.qt.io/browse/QTBUG-85236
-
@JKSH Thank you very much for that insight. My need is to convert html to pdf, I don't need the complete features provided by QtWebEngine. Maybe I should try with Qt6 since the
QWebEnginePage
class was moved toQWebEngineCore
which should not rely on qtdeclarative. Do you have more tips to share? -
Did you already checked QtPdf ?
-
@SGaist Well I thought QtPdf was not standalone and was required by QtWebengine to render pdf? Am I wrong? So that's when your input is pdf, in my case input is html and output is pdf.
-
@JKSH Thank you very much for that insight. My need is to convert html to pdf, I don't need the complete features provided by QtWebEngine. Maybe I should try with Qt6 since the
QWebEnginePage
class was moved toQWebEngineCore
which should not rely on qtdeclarative. Do you have more tips to share?- Chromium contains its own internal PDF libraries for viewing and printing PDFs (pdfium). Qt WebEngine makes use of this directly, without depending on Qt PDF.
- Qt PDF is a standalone module for viewing PDF documents only (not printing). It can be used on platforms that can't use Qt WebEngine.
@JulienMaille said in Compiling QtWebengine without QtQuick dependancy.:
Maybe I should try with Qt6 since the
QWebEnginePage
class was moved toQWebEngineCore
which should not rely on qtdeclarative. Do you have more tips to share?You're welcome.
Alas, even if you only depend on Qt WebEngine Core but not Qt WebEngine (Widgets|Quick), your deployment will still have a dependency on Qt Quick for some reason (I just tested with Qt 6.8.3, but I haven't figured out why)
-
Ok, I will stick to Qt5 for now. My first try to load and print pdf using the example https://doc.qt.io/qt-5/qtwebengine-webenginewidgets-html2pdf-example.html was a total failure. Both the load and the print fails, without any error message.
I will try recompiling with less-no-feature-webengine-*
flags -
Sorry for the QtPdf suggestion, I somehow conflated rendering with printing.
What kind of document are you trying to create PDF out of ?
Depending on that, the QPdfWriter class might be enough. -
@SGaist The document I want to convert to PDF is an "in memory" html+css file.
@JKSH Have you ever tried the html2pdf example? I recompiled Qt in 64bit (I was afraid something was wrong with my x86onx64 build) and this official example still fails to print anything to pdf.
m_page->load(QUrl::fromUserInput(m_inputPath));
return ok=false, and when forcing the htmlSource of m_page with some html code, thenm_page->printToPdf(m_outputPath);
also results in ok=false.
There are no error codes that I could use to understand where the problem comes from. -
Are you styling things in such a manner that QDocument can handle it ?
-
I dunno, I tried printing "<html>hello</html>" to pdf, shouldn't that work?
-
With QPdfPrinter ? AFAIK, yes.
How did you do it ? -
Have a look at https://doc.qt.io/qt-5/qtwebengine-webenginewidgets-html2pdf-example.html it uses neither QDocument nor QPdfPrinter