Bereitstellung von Plugins
In diesem Abschnitt wird erläutert, wie Sie Plugin-Bibliotheken bereitstellen, damit Qt oder Ihre Anwendung diese zur Laufzeit laden kann. Wenn Sie statische Plugins verwenden, ist der Plugin-Code bereits Teil der ausführbaren Datei Ihrer Anwendung, sodass keine separaten Bereitstellungsschritte erforderlich sind.
Das Plugin-Verzeichnis
In Qt ist das Verzeichnis der ausführbaren Datei der Anwendung beim Start das Basisverzeichnis, in dem Qt nach Plugins sucht.
Befindet sich die Anwendung beispielsweise unter Windows im Verzeichnis „ C:\Program Files\MyApp “ und verfügt sie über ein Stil-Plugin, sucht Qt im Verzeichnis „ C:\Program Files\MyApp\styles “.
Um herauszufinden, wo sich die ausführbare Datei Ihrer Anwendung befindet, siehe ` QCoreApplication::applicationDirPath()`.
Qt sucht außerdem in dem Verzeichnis, das durch „ QLibraryInfo::path “ (QLibraryInfo::PluginsPath) angegeben wird; dieses befindet sich in der Regel unter „ QTDIR/plugins “, wobei „ QTDIR “ das Verzeichnis ist, in dem Qt installiert ist. Wenn Sie möchten, dass Qt an weiteren Orten sucht, können Sie mit Aufrufen von „ QCoreApplication::addLibraryPath()“ beliebig viele Pfade hinzufügen. Wenn Sie eigene Pfade festlegen möchten, können Sie „ QCoreApplication::setLibraryPaths()“ verwenden.
Alternativ können Sie eine „ qt.conf “-Datei verwenden, um die fest codierten Pfade zu überschreiben, die in die Qt-Bibliothek kompiliert sind. Weitere Informationen finden Sie unter „Verwendung von qt.conf“.
Eine weitere Möglichkeit besteht darin, die Umgebungsvariable „ QT_PLUGIN_PATH “ vor dem Ausführen der Anwendung zu setzen; mehrere Pfade können durch ein systemeigenes Trennzeichen getrennt werden. Ist diese Variable gesetzt, sucht Qt in den darin angegebenen Pfaden nach Plugins.
Hinweis: ExportierenSie „ QT_PLUGIN_PATH “ nicht als systemweite Umgebungsvariable, da dies zu Konflikten mit anderen Qt-Installationen führen kann.
Dynamisches Laden und Überprüfen von Plugins
Beim Laden von Plugins führt die Qt-Bibliothek eine Plausibilitätsprüfung durch, um festzustellen, ob das Plugin geladen und verwendet werden kann. Diese Plausibilitätsprü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 Nebenversionsnummer aufweist, werden von einer Bibliothek mit einer niedrigeren Nebenversionsnummer nicht geladen.
Beispiel: Qt 6.2.0 lädt kein Plugin, das mit Qt 6.3.0 erstellt wurde. Beispiel: Qt 6.2.0 lädt ein Plugin, das mit Qt 6.1.0 erstellt wurde. Beispiel: Qt 6.2.0 lädt ein Plugin, das mit Qt 6.2.1 erstellt wurde. - Plugins, die mit einer Qt-Bibliothek verknüpft sind, die eine niedrigere Hauptversionsnummer hat, werden von einer Bibliothek mit einer höheren Hauptversionsnummer nicht geladen.
Beispiel: Qt 6.0.0 lädt kein Plugin, das mit Qt 5.15.0 erstellt wurde.
Beim Erstellen von Plugins zur Erweiterung einer Anwendung ist es wichtig, sicherzustellen, dass das Plugin auf dieselbe Weise konfiguriert ist wie die Anwendung. Das bedeutet: Wenn die Anwendung im Release-Modus erstellt wurde, sollten auch die Plugins im Release-Modus erstellt werden. Eine Ausnahme bilden Unix-Betriebssysteme, auf denen das Plugin-System keine Plugins lädt, die in einem anderen Modus als die Anwendung erstellt wurden.
Plugins debuggen
Es gibt eine Reihe von Problemen, die dazu führen können, dass korrekt geschriebene Plugins nicht mit den Anwendungen funktionieren, für deren Verwendung sie vorgesehen sind. Viele davon hängen mit Unterschieden in der Art und Weise zusammen, wie Plugins und Anwendungen erstellt wurden, was häufig auf unterschiedliche Build-Systeme und -Prozesse zurückzuführen ist.
Um von Qt Diagnoseinformationen zu jedem Plugin zu erhalten, das es zu laden versucht, verwenden Sie die Umgebungsvariable ` QT_DEBUG_PLUGINS `. Setzen Sie diese Variable in der Umgebung, in der Ihre Anwendung gestartet wird, auf einen Wert ungleich Null.
Die folgende Tabelle beschreibt die häufigsten Ursachen für Probleme, auf die Entwickler beim Erstellen von Plugins stoßen, sowie mögliche Lösungen.
| Problem | Ursache | Lösung |
|---|---|---|
| Plugins werden im Hintergrund nicht geladen, selbst wenn sie direkt von der Anwendung geöffnet werden. Der „ Qt Widgets Designer“ zeigt die Plugin-Bibliotheken im Dialogfeld „ Help|About Plugins “ an, unter den einzelnen Bibliotheken sind jedoch keine Plugins aufgeführt. | Die Anwendung und ihre Plugins wurden in unterschiedlichen Modi erstellt. | Erstellen Sie das Plugin mit derselben Konfiguration wie die ausführbare Datei. |
© 2026 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.