Laden Qt-plugins wenn Sie einen Link zu Qt statisch?

Ich versuche, SVG-Grafiken in QIcons. Ich habe eine statische Bibliothek, die enthält alle meine Grafik Ressourcen, und eine Methode, die statische Bibliothek, die gibt QIcons pre-loaded mit den richtigen Grafiken. Ich bin versucht, dies zu tun:

QIcon icon(":/icons/find.svg");

Habe ich verifiziert, dass die Ressourcen geladen wurden, weist es mit QDir:

qDebug() << QDir(":/icons/").entryList();

Jedoch die SVG-icon wird nicht gezeigt. Wenn ich das icon laden code zu diesem:

QIcon icon(":/icons/find.png");

alles ordnungsgemäß funktioniert.

Das problem scheint zu sein, dass das SVG-plugin wird nie geladen. Ich kann eine Liste der unterstützten Bild-Typen, die enthält:

("bmp", "pbm", "pgm", "png", "ppm", "xbm", "xpm")

aber keine Erwähnung von SVG.

Den ich gemacht habe, sicher bin ich mit dem SVG-Modul in meinen beiden statischen Bibliothek .pro-Datei, und meine Haupt-Anwendung .pro Datei.

Edit:

Es scheint, das problem ist, dass ich die Verknüpfung zu Qt statisch, und somit die plugins sind alle statischen libs. Die Dokumentation für QPluginLoader besagt, dass:

Beachten Sie, dass die QPluginLoader nicht
verwendet, wenn Ihre Anwendung ist statisch
gegen die Qt gelinkt. In diesem Fall, Sie
haben auch einen link zu plugins
statisch. Sie können QLibrary wenn
Sie benötigen zum laden von dynamischen Bibliotheken
eine statisch gelinkte Anwendung.

Doch statisch gelinkt, um diese plugins scheint nichts zu tun ( die Liste der unterstützten Bild-Formate nicht wachsen).

Edit2:

Auch, in Verbindung mit Qt dynamisch (nach Umbau meine ganze app) macht der code oben funktioniert perfekt. Aber ich wollen link zu Qt statisch, also die Frage scheint jetzt zu sein, mehr über das laden der Qt-plugins wenn Sie einen Link zu Qt statisch und weniger über Symbole im Allgemeinen. Ich update den post-Titel, um diese zu reflektieren.

InformationsquelleAutor Thomi | 2009-10-02
Schreibe einen Kommentar