Embed web application as a resource into C++ Qt ex

2019-08-07 01:36发布

问题:

I would like to load a sort of "web application" in a QWebView.

My "web application" is made up of some HTML5 pages with CSS, Javascript and pictures. It is totally autonomous. It does not need a server.

I am quite new to Qt programming. Is there a way to embed those files into the Qt project and load them in the QWebView when the program starts?

I already managed to load those pages from a remote HTTP server but my application must be standalone.

EDIT

Thank you for your solution Yodabox. The page is well displayed. I set baseUrl as "qrc:///web/" instead of ":/web/". But I still have a problem.

I do an async request to an embedded XML file to load values in an HTML select. The JavascriptConsole gives the message: XHR finished loading: "qrc:///web/xml/values.xml" but the select is not populated. Do you have any solution?

回答1:

All you Need is QWebView::setHtml

void QWebView::setHtml ( const QString & html, const QUrl & baseUrl = QUrl() )

you should set baseUrl as ":/web/" and html as the HTML file content,please read Qt DOC for detail.



回答2:

if those pages aren't suppose to change during the esecution of the application, i think you can encapsulate it in a resource file... (i don t know if it is good or bad.. simply it does what you need)

you can read about the resource system here : Resource System