Frage

werde ich brauchen, um Last Java-Script-Objekte in QwebKit wenn meine Anwendung Laden
ist Ich kann setHtml mit dem HTML verwenden und die Java-Script-String formatiert aber es ist sehr schwer zu Pflegen.
Meine Frage ist, kann binde ich das HTML und Java Script als Ressource in Qwebkit?
Ich auch nicht, was das die html und die Javascript auf die Anwendung Benutzer verfügbar

War es hilfreich?

Lösung

Ja, Sie können.

Fügen Sie einfach Ihre JS / CSS zu der Ressource-Datei (schauen, um die Qt-Dokumentation, wenn Sie nicht wissen, wie) und dann in Ihrem HTML einfach qrc:/file/path/or/alias verwenden.

Zum Beispiel, wenn ich JQuery auf die Ressource-Datei hinzufügen, wie /js/jquery aliased, dann ist es zu laden, würde ich setze diese in meine HTML-Datei:

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

Laden einer HTML-Datei von einer Ressource-Datei scheint mehr Aufwand zu sein, wie ich nicht QWebKit::setUrl(QUrl("qrc:/resource/path")) zur Arbeit zu bekommen scheinen ( „: / Mittel / path“ nicht Arbeit für mich entweder). Was ich zur Zeit tun, ist dies:

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"));

Erstellen von Verknüpfungen zu anderen HTML-Ressourcen kann ein Problem sein, wenn. Sollte jemand wissen, wie man damit umgehen, bitte Kommentar! (Ich denke, Sie können dies tun, indem Sie das Netzwerk managerclass abfangen Neuimplementierung wenn webkit HTTP-Anfragen sendet, und wenn sie für qrc sind: / Urls, lesen Sie die Datei aus dem Ressource-System und reagieren mit, dass, obwohl dann müssen Sie MIME-Typen verwalten und solche (zB wenn die Ressource ist ein Bild) selbst ...)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top