将我需要加载Java脚本对象到QwebKit当我加载应用程序点击 我可以使用setHtml与HTML和格式化的Java脚本字符串,但它很难 维护。结果 我的问题是,我可以嵌入HTML和Java脚本资源到Qwebkit?点击 此外,我不说什么的HTML和JavaScript是提供给应用程序的用户。

有帮助吗?

解决方案

是,你能。

只需将您的JS / CSS添加到资源文件(查找Qt的文档,如果你不知道如何),然后在你的HTML简单地使用qrc:/file/path/or/alias

例如,如果我添加了jQuery资源文件,别名为/js/jquery,然后加载它,我把这个在我的HTML文件:

<script type="text/javascript" src="qrc:/js/jquery"></script>

从资源文件加载HTML文件似乎是更多的努力,因为我似乎无法得到QWebKit::setUrl(QUrl("qrc:/resource/path"))工作(“:/资源/路径”不为我工作要么)。我现在做的是这样的:

QString readFile (const QString& filename)
{
    QFile file(filename);
    if (file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        QTextStream stream(&file);
        return stream.readAll();
    }
    return "";
}

...
myWebKitObject->setHtml(readFile("qrc:/html/index"));

创建链接到其它HTML资源可能是一个问题,虽然。如果有人知道如何解决这个问题,请评论! (我想你可以通过重新实现网络managerclass拦截做到这一点时,WebKit的发送HTTP请求,如果他们的QRC:/网址,请从资源系统响应与该文件,但那么你必须要管理MIME类型和这样的(例如,如果资源是图像)自己...)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top