Comment afficher les html dans Qt WebView
Je suis en train d'essayer d'obtenir l'intervalle Qt WebView pour afficher un fichier html qui est incorporé un Qt de ressources, mais je n'arrive pas à le faire fonctionner. J'ai créé une nouvelle Qt application Rapide et ajouté un simple fichier qml:
import QtQuick 2.0
import QtWebKit 3.0
Rectangle {
id: content
width: 800
height: 600
color: "black"
WebView {
id: webView
anchors.fill: parent
url: "qrc:/res/test.html"
}
}
J'ai ensuite créé (à l'aide du Concepteur) un fichier de ressources qui ressemble à ceci:
<RCC>
<qresource prefix="/res">
<file>test.html</file>
</qresource>
</RCC>
et créé un simple test.html fichier (dans le même répertoire que le .qrc fichier):
<html>
<head><title>Hello</title></head>
<body>
<h1>Hello World!</h1>
</body>
</html>
Le résultat est tout simplement un blanc vide de la fenêtre. Si j'utilise une url régulier (http://www.stackoverflow.com
) dans le fichier qml que l'url ça marche - la page est affichée. Si j'utilise le nom d'une image intégrée (qrc:/qt-project.org/mac/cursors/images/pluscursor.png
) que l'image est affichée.
Il me semble que si le fichier html est en effet ajouté (il est au moins dans la liste lorsque je les énumère les ressources incorporées), mais ma compréhension de l'intervalle Qt système de ressources est limité, donc je peut très bien avoir mal compris quelque chose de fondamental.
Quelqu'un peut me dire ce que je fais de mal?
Mise à jour: j'ai vérifié que le problème est le même si je tente de dire de la vue web pour charger l'url à partir de C++. J'ai également vérifié que la ressource est en effet intégré - je peux ouvrir et de lire de la ressource à l'aide d'un QResource. Aussi, cela ne semble pas être spécifique à Qt5: http://qt-project.org/forums/viewthread/18181 (quelqu'un ayant un problème similaire avec Qt 4.8).
Oui, et j'ai vérifié que le fichier html en fait a fini comme une ressource dans le fichier.
paramètre html avec ce que vous avez, disons, à partir d'un backend fonction de lecture de la ressource incorporée, pourrait être une réponse simple (dans le cas où quelqu'un se demande)
OriginalL'auteur villintehaspam | 2012-12-26
Vous devez vous connecter pour publier un commentaire.
Tout d'abord , assurez-vous que le fichier de ressources est compilé correctement sur la compilation dossier (un
.RCC
fichier ou unqrc_<Resource name>.cpp
)Deuxièmement, assurez-vous que votre fichier chemin d'accès est correct (dans mon cas
qrc:/images/resource/html/test.html
). Vous pouvez ouvrir la SCFQ fichier et cliquez-droit sur le fichier html, puis cliquez surCopy Resource Path to Clipboard
.Enfin Notez que certaines urls besoin de plus de temps pour charger complètement.
Enfin, je l'ai tester ce scénario et il fonctionne très bien (à l'Aide de Qt 5.1.0)
Bonne chance - S. M. Moussavi
OriginalL'auteur S.M.Mousavi
Je ne pense pas qu'il est possible de l'ouverture de ressources de langues directement dans WebView (j'ai essayé toutes les url des variantes). Ce que je fais maintenant est de copier le fichier dans le répertoire temp local, puis en ouvrant.
Puis QML ressemble:
OriginalL'auteur Libor Tomsik
Ok, voici comment j'ai fini par résoudre ce. J'ai fini par en utilisant un simple widget au lieu d'un qml en fonction de l'interface.
Puis j'ai eu à lire la première page html de ressources manuellement et de fournir l'url de base. Après que, à la suite des pages et des ressources qui sont incorporés comme le chargement des ressources d'amende.
Voici le code en question:
où
webView
est unQWebView
. Mon .qrc fichier ressemble à ceci:Cela fonctionne dans Qt 5.5.0.
OriginalL'auteur villintehaspam
Le moyen le plus rapide pour charger un fichier de ressources est à l'aide de
XMLHttpRequest
etloadHtml()
.Cela fonctionne dans Qt 5.10.1 pour les plateformes mobiles.
OriginalL'auteur Vi.
pourquoi ne pas simplement utiliser
au lieu de
?
Alors vous n'auriez pas besoin d'utiliser des fichiers de ressources
si le fichier qml provient de ressources lui-même, cela doit fonctionner 🙂
OriginalL'auteur B.G.
Ressources incorporées Url support de chargement par le moteur web est disponible dans le dernier Qt au moins pour
WebEngineView
en QML. Je n'étais pas en mesure de trouver la documentation officielle sur ce sujet, mais un échantillon officiel charges page de ressources:Ça marche pour moi avec
Qt 5.8.0
.OriginalL'auteur Max Go
Vous pouvez mettre en dessous de la ligne juste après QApplication a(argc, argv);
OriginalL'auteur SourabhKus
Suffit d'utiliser le Chemin d'accès Au Fichier & Si vous l'avez enregistré dans le répertoire du projet, il suffit de définir le nom de fichier
url: "/res/test.html"
& si le fichier est dans le répertoire du projet
url: "test.html"
OriginalL'auteur Elias Fazel