/**************************************************************************** ** ** Copyright (C) 2018 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. ** ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** ****************************************************************************/ // ********************************************************************** // NOTE: the sections are not ordered by their logical order to avoid // reshuffling the file each time the index order changes (i.e., often). // Run the fixnavi.pl script to adjust the links to the index order. // ********************************************************************** /*! \previouspage creator-using-qt-designer.html \page adding-plugins.html \nextpage creator-usability.html \title Adding Qt Designer Plugins You can use Qt APIs to create plugins that extend Qt applications. This enables you to add your own widgets to \QD. The most flexible way to include a plugin with an application is to compile it into a dynamic library that is shipped separately, and detected and loaded at runtime. The applications can detect plugins that are stored in the standard plugin subdirectories. For more information on how to create and locate plugins and to change the default plugin path, see \l{How to Create Qt Plugins}. For more information about how to create plugins for \QD, see \l{Using Custom Widgets with Qt Designer}. \section1 Locating Qt Designer Plugins \QD fetches plugins from the standard locations and loads the plugins that match its build key. \QD is delivered both as a standalone application and integrated into \QC. The correct folder to place the plugins depends on whether you use the standalone \QD or the integrated \QD. The integrated \QD fetches plugins from the \c {\bin\plugins\designer} directory in the \QC installation directory on Windows and Linux. For information about how to configure plugins on \macos, see \l{Configuring Qt Designer Plugins on \macos}. To check which plugins were loaded successfully and which failed, choose \uicontrol Tools > \uicontrol {Form Editor} > \uicontrol {About Qt Designer Plugins}. The standalone \QD is part of the Qt library used for building projects, located in \c {\\bin} in the Qt installation directory. It fetches plugins from the \c {\plugins\designer} subdirectory of \c bin. To check which plugins were loaded successfully and which failed, choose \uicontrol Help > \uicontrol {About Plugins}. \section2 Configuring Qt Designer Plugins on \macos On \macos, a GUI application must be built and run from a bundle. A bundle is a directory structure that appears as a single entity when viewed in the Finder. A bundle for an application typcially contains the executable and all the resources it needs. \QC uses its own set of Qt Libraries located in the bundle, and therefore, you need to configure the \QD plugins that you want to use with \QC. For more information about how to deploy applications to \macos, see \l{Qt for macOS - Deployment}. The following example illustrates how to configure version 5.2.1 of the \l{http://qwt.sourceforge.net/}{Qwt - Qt Widgets for Technical Applications} library for use with \QC: \list 1 \li To check the paths used in the Qwt library, enter the following \c otool command: \include doc_src_plugins.qdocinc 0 The output for Qwt 5.2.1 indicates that the plugin uses Qt core libraries (QtDesigner, QtScript, QtXml, QtGui and QtCore) and libqwt.5.dylib: \include doc_src_plugins.qdocinc 1 \li You must copy the \QD plugin and the Qwt library files to the following locations: \list \li \c {libqwt_designer_plugin.dylib} to \c {Qt Creator.app/Contents/PlugIns/designer} \li \c {libqwt.*.dylib} to \c {Qt Creator.app/Contents/Frameworks} \endlist Enter the following commands: \include doc_src_plugins.qdocinc 4 \li Enter the following \c otool command to check the libraries that are used by the Qwt library: \include doc_src_plugins.qdocinc 2 The command returns the following output: \include doc_src_plugins.qdocinc 3 \li Enter the following \c install_name_tool command to fix the references of the libraries: \include doc_src_plugins.qdocinc 5 \endlist \section1 Matching Build Keys The \QC that is included in pre-built Qt packages on Windows is built with the Microsoft Visual Studio compiler, whereas the version of Qt shipped for building applications is configured and built to use the MinGW/g++ compiler. Plugins built by using this version of Qt cannot be loaded by \QC because the build-keys do not match. The plugins can only be used in the standalone version of \QD. Choose \uicontrol Help > \uicontrol {About \QC} to check the Qt version \QC was built with. To use \QD plugins that were built for the shipped Qt version, make sure that \QC is built with the same compiler by either recompiling \QC using MinGW or recompiling Qt with Microsoft Visual Studio, depending on which configuration you want to use for your applications. */