2016-06-12 7 views
0

J'ai besoin de montrer du contenu web dynamique dans mon application (que ce soit du matériel d'aide à l'application). J'ai utilisé Qt5.4 avec QWebView là. Mais après le passage à Qt5.6, j'ai remarqué que QWebKit est obsolète et n'est plus supporté. Ainsi, j'ai décidé de remplacer QWebKit fonctionnalité avec un de QWebEngine. Après avoir remplacé QWebView avec QWebEngineView J'ai étudié que certains dossiers vides sont créés dans le dossier de l'utilisateur après le lancement de mon application. Par exemple: Dossier .QtWebEngineProcess et dossier qui a appelé comme mon application avec un point au début.Comment empêcher la création de dossiers étranges lors de l'utilisation de QWebEngineView?

Est-ce normal? Comment puis-je empêcher la création de tels dossiers? Toute option pour désactiver un tel comportement?

Répondre

0

QWebEngine a besoin de ce dossier pour stocker certains fichiers temporels: comme les cookies, les données de cache ... Voir QWebEngineProfile pour plus de détails (http://doc.qt.io/qt-5/qwebengineprofile.html#PersistentCookiesPolicy-enum). Vous pouvez sélectionner le dossier par défaut dans un lieu:

QWebEngineProfile* defaultProfile = QWebEngineProfile::defaultProfile(); 
defaultProfile->setCachePath("your folder"); 
defaultProfile->setPersistentStoragePath("your folder"); 

Ou vous pouvez le désactiver, en changeant la politique de cookies:

QWebEngineProfile::defaultProfile()->setPersistentCookiesPolicy(QWebEngineProfile::NoPersistentCookies); 

Une chose, QWebEngine besoin des dossiers contenant des fichiers de traductions, ressources .. qui devrait être attaché avec votre fichier exe pour fonctionner correctement. Vous pouvez exécuter dans les terminaux Qt (par exemple sous Windows) dans votre dossier exe:

windeployqt . 

et Qt copie tous les fichiers dont vous avez besoin. Voir http://doc.qt.io/qt-5/windows-deployment.html pour plus de détails =)

+0

Mon application ne nécessite pas de stocker des cookies et cache de données. Donc, je ne veux pas de dossiers excessifs dans le répertoire de l'utilisateur. – vasyl

+0

Il suffit donc de désactiver le stockage des coockies: QWebEngineProfile :: defaultProfile() -> setPersistentCookiesPolicy (QWebEngineProfile :: NoPersistentCookies); – mohabouje

+0

Merci! Je l'ai fait. J'ai également supprimé tous les dossiers inutiles du répertoire de l'utilisateur. Mais le dossier .QtWebEngineProcess est toujours apparu dans le dossier utilisateur après le démarrage de l'application. – vasyl