Bereitstellen von Plugins

Dieses Thema erklärt, wie Sie Plugin-Bibliotheken für Qt oder Ihre Anwendung bereitstellen, die zur Laufzeit geladen werden. Wenn Sie statische Plugins verwenden, dann ist der Plugin-Code bereits Teil der ausführbaren Datei Ihrer Anwendung und es sind keine separaten Bereitstellungsschritte erforderlich.

Das Plugin-Verzeichnis

Wenn eine Anwendung in Qt gestartet wird, ist das ausführbare Verzeichnis der Anwendung das Basisverzeichnis, in dem Qt nach Plugins sucht.

Wenn sich die Anwendung unter Windows zum Beispiel in C:\Program Files\MyApp befindet und ein Style-Plugin hat, sucht Qt in C:\Program Files\MyApp\styles.

Um herauszufinden, wo sich die ausführbare Datei Ihrer Anwendung befindet, siehe QCoreApplication::applicationDirPath().

Qt sucht auch in dem durch QLibraryInfo::path(QLibraryInfo::PluginsPath) angegebenen Verzeichnis, das sich normalerweise in QTDIR/plugins befindet; QTDIR ist das Verzeichnis, in dem Qt installiert ist. Wenn Sie möchten, dass Qt in weiteren Verzeichnissen sucht, können Sie mit Aufrufen von QCoreApplication::addLibraryPath() so viele Pfade hinzufügen, wie Sie benötigen. Wenn Sie Ihre eigenen Pfade setzen wollen, können Sie QCoreApplication::setLibraryPaths() verwenden.

Alternativ können Sie eine qt.conf Datei verwenden, um die fest kodierten Pfade, die in die Qt Bibliothek kompiliert wurden, zu überschreiben. Für weitere Informationen siehe qt.conf verwenden.

Eine andere Möglichkeit besteht darin, die Umgebungsvariable QT_PLUGIN_PATH zu setzen, bevor Sie die Anwendung ausführen; mehrere Pfade können mit einem Systempfad-Trennzeichen getrennt werden. Wenn sie gesetzt ist, sucht Qt nach Plugins in den Pfaden, die in dieser Variable angegeben sind.

Hinweis: Exportieren Sie QT_PLUGIN_PATH nicht als systemweite Umgebungsvariable, da dies andere Qt-Installationen beeinträchtigen kann.

Plugins dynamisch laden und verifizieren

Beim Laden von Plugins führt die Qt-Bibliothek eine Sicherheitsüberprüfung durch, um festzustellen, ob das Plugin geladen und verwendet werden kann. Diese Prüfung ermöglicht es Ihnen, mehrere Qt-Versionen und Konfigurationen nebeneinander zu installieren.

Es gelten die folgenden Regeln:

  • Plugins, die mit einer Qt-Bibliothek verknüpft sind, die eine höhere Versionsnummer hat, werden nicht von einer Bibliothek mit einer niedrigeren Versionsnummer geladen.


    Beispiel: Qt 6.2.0 wird ein Plugin, das mit Qt 6.3.0 erstellt wurde, nicht laden. Beispiel: Qt 6.2.0 wird ein Plugin laden, das mit Qt 6.1.0 erstellt wurde. Beispiel: Qt 6.2.0 wird ein Plugin laden, das mit Qt 6.2.1 erstellt wurde.

  • Plugins, die mit einer Qt-Bibliothek mit einer niedrigeren Hauptversionsnummer verknüpft sind, werden nicht von einer Bibliothek mit einer höheren Hauptversionsnummer geladen.


    Beispiel: Qt 6.0.0 wird ein Plugin, das mit Qt 5.15.0 erstellt wurde, nicht laden.

Bei der Erstellung von Plugins zur Erweiterung einer Anwendung ist es wichtig sicherzustellen, dass das Plugin auf die gleiche Weise konfiguriert wird wie die Anwendung. Das bedeutet, dass, wenn die Anwendung im Release-Modus erstellt wurde, auch die Plugins im Release-Modus erstellt werden sollten. Außer bei Unix-Betriebssystemen, wo das Plugin-System keine Plugins lädt, die in einem anderen Modus als die Anwendung erstellt wurden.

Fehlersuche bei Plugins

Es gibt eine Reihe von Problemen, die verhindern können, dass korrekt geschriebene Plugins mit den Anwendungen zusammenarbeiten, die für ihre Verwendung vorgesehen sind. Viele dieser Probleme hängen mit Unterschieden in der Art und Weise zusammen, wie Plugins und Anwendungen erstellt wurden, was oft auf unterschiedliche Build-Systeme und -Prozesse zurückzuführen ist.

Um Diagnoseinformationen von Qt über jedes Plugin, das es zu laden versucht, zu erhalten, verwenden Sie die Umgebungsvariable QT_DEBUG_PLUGINS. Setzen Sie diese Variable auf einen Wert ungleich Null in der Umgebung, in der Ihre Anwendung gestartet wird.

Die folgende Tabelle beschreibt die häufigsten Ursachen für Probleme, die Entwickler bei der Erstellung von Plugins haben, sowie mögliche Lösungen.

ProblemUrsacheLösung
Plugins werden nicht geladen, auch wenn sie direkt von der Anwendung geöffnet werden. Qt Widgets Der Designer zeigt die Plugin-Bibliotheken in seinem Dialog Help|About Plugins an, aber es werden keine Plugins unter den einzelnen Bibliotheken aufgeführt.Die Anwendung und ihre Plugins werden in unterschiedlichen Modi erstellt.Erstellen Sie das Plugin in der gleichen Konfiguration wie die ausführbare Datei.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.