将Web应用程序作为资源嵌入到Qt可执行文件C++

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

本文关键字:Qt 可执行文件 C++ 资源 Web 应用程序      更新时间:2023-10-16

我想在QWebView中加载一种"Web应用程序"。

我的"Web应用程序"由一些带有CSS,Javascript和图片的HTML5页面组成。它是完全自主的。它不需要服务器。

我对Qt编程很陌生。有没有办法将这些文件嵌入到Qt项目中,并在程序启动时将它们加载到QWebView中?

我已经设法从远程 HTTP 服务器加载这些页面,但我的应用程序必须是独立的。

编辑

感谢您的解决方案尤达盒子。页面显示良好。我将baseUrl设置为"qrc:///web/"而不是":/web/"。但我仍然有一个问题。

我对嵌入式XML文件执行异步请求以加载HTML选择中的值。JavascriptConsole 给出消息:XHR finished loading: "qrc:///web/xml/values.xml"但未填充选择。你有什么解决方案吗?

你所需要的只是QWebView::setHtml

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

您应该将baseUrl设置为":/web/",将html设置为HTML文件内容,有关详细信息,请阅读Qt DOC。

如果这些页面在应用程序执行期间不会更改,我认为您可以将其封装在资源文件中...(我不知道它是好是坏......只是它能满足你的需要)

您可以在此处阅读有关资源系统的信息:资源系统