J'ai une application Qt4 avec des icônes SVG, compilées avec Mingw (sous Windows), liée aux bibliothèques partagées QT. P>
Lorsque l'application est exécutée, les icônes SVG apparaissent dans les bâtiments de débogage et de version sous Linux, mais dans Windows SVG Icons apparaît uniquement dans la construction de débogage mais pas dans la construction de la libération. P>
Toutes les icônes SVG sont énumérées dans Qt 4.7.0, Qt Creator 2.0.1, MINGW / G ++ 4.4.0. P>
Project.QRC CODE> et
Project.Pro code> a
ressources = projet.qrc code>. Application utilise qtsvg4.dll (version 4.7.0). P>
qt.conf code>
fichier avec le chemin approprié. Plus d'informations dans Déploiement de plugins . P>
8 Réponses :
Sur la base de ce que vous avez dit, vous faites tout ce qui est nécessaire pour que cela fonctionne, une réponse appropriée nécessite probablement une autre information. Voir si ces liens vous sont utiles: P>
http://lists.trolltech.com/qt-interest/ 2008-10 / msg00655.html P>
http://www.qtcentre.org/archive/index. php / t-9036.html p>
En particulier, assurez-vous que le plugin SVG est chargé avec: p>
qimagereader :: supportéImageFromats () code> p>
Les liens sont découragés de manière à ce que la mai soit morte i> à l'avenir.
Eh bien ... et donc l'avenir i> a arrêté. Les deux liens sont morts.
Très probablement, vous devrez inclure les plugins de votre DIR QT. Cela implique de créer un fichier qt.conf local à votre application (voir ici: http. : //doc.qt.io/qt-4.8/qt-conf.html , plus spécifiquement la section [Chemins]) et copiez C: \ qt \ 4.xx \ plugins \ imagesformats * .dll à Votre répertoire de distribuable. P>
Merci, c'était ça. J'ai dû créer / imageFormats dossier dans mon dossier d'application et copier qsvg4.dll dans celui-ci. J'ai déjà essayé de copier qsvg4.dll dans un dossier d'application avec d'autres DLL QT, mais l'application la recherchait sous / imageFormats (comportement par défaut sans qt.conf).
pour mon (qt 4.6.3) Application, j'ai résolu ceci en mettant la dll plug-in (qsvgicon4.dll) dans un répertoire appelé Essayé d'autres solutions - telles que le déploiement de plugin au répertoire (dans le répertoire de l'application) nommé ImageFormats em> avec et sans qualité appropriée, mais pas de joie. P>
note em>: J'ai précédemment exécuté l'application avec les DLL de Qt 4.7.0 et n'avait aucun problème sur la même machine cible Win7. P>
Si ajouter le qt4svg.dll et l'imageFormats / qsvg4.dll ne fonctionne pas, assurez-vous que le qt4xml.dll est également inclus dans les DLL Standard Core, GUI et SVG. P>
Voici comment j'ai résolu ceci pour moi. P>
Short: pour rendant des images SVG, vous devez inclure le XML DLL ASWELL P>
Il semble toujours être un problème avec Qt5.1 dans Windows, ici comment je l'ai résolu pour les utilisateurs de CLAKE:
get_target_property(QtCore_location Qt5::Core LOCATION) get_filename_component(QtBinBase ${QtCore_location} PATH)
Depuis Qt5, le framework a été fortement modularisé (liste des modules) . Très probablement, il vous manque le module SVG. L'application compilera toujours sans se plaindre. Assurez-vous que le module SVG est installé sur votre système et lié (avec QMake (HOWTO) ou simple marque ). S'il était lié avec succès QimagerReader :: Principalement supporté () listera SVG. p>
Vous avez deviné: voici encore une autre façon de Évitez de lire les documents , mais plutôt à compter sur des conseils bon marché à partir d'Internet.
Ajoutez simplement cette ligne à votre app.pro code>! p>
g++ [...] -LC:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats \
C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqsvg.a [...]
pour Qt 5.14
Ajouter une ligne au fichier .pro
Comment ressemble votre code d'icône? Peut-être que vous avez des appels importants enveloppés dans Assertion / Q_Assert? Ensuite, ils pourraient ne pas être exécutés en mode de libération.
Frank: Merci pour votre réponse. J'ai regardé et ils n'étaient pas enveloppés dans des affirmations. Les icônes sont définies dans des fichiers de code et d'interface utilisateur comme ceci: qpushbutton * buttonx = nouveau qpushbutton (QiCon (": / images / buttonx.svg"), "do x", ceci); ou : / images / iconx.svg normalof f>: / images / iconx.svg iconset> propriété>. Les icônes apparaissent également dans les constructions de libération Linux.