qtdesigner-plugins.qdoc 5.55 KB
Newer Older
1 2
/****************************************************************************
**
3
** Copyright (c) 2014 Digia Plc and/or its subsidiary(-ies).
hjk's avatar
hjk committed
4
** Contact: http://www.qt-project.org/legal
5
**
hjk's avatar
hjk committed
6
** This file is part of Qt Creator
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
**
**
** GNU Free Documentation License
**
** 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.
**
**
****************************************************************************/

// **********************************************************************
// 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.
// **********************************************************************

/*!
26
    \contentspage {Qt Creator Manual}
27
    \previouspage creator-using-qt-designer.html
28
    \page adding-plugins.html
29
    \nextpage creator-usability.html
30 31 32 33

    \title Adding Qt Designer Plugins

    You can use Qt APIs to create plugins that extend Qt applications.
34
    This enables you to add your own widgets to \QD.
35 36 37 38 39 40 41 42 43
    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
44
    \l{Using Custom Widgets with Qt Designer}.
45 46 47 48 49

    \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
50 51
    and integrated into \QC. The correct folder to place the plugins depends on
    whether you use the standalone \QD or the integrated \QD.
52 53 54

    The integrated \QD fetches plugins from the \c {%SDK%\bin\designer} folder
    on Windows and Linux. For information about how to configure plugins on
55
    OS X, see \l{Configuring Qt Designer Plugins on OS X}.
56 57 58 59 60 61 62 63 64 65 66

    To check which plugins
    were loaded successfully and which failed, choose \gui{Tools > Form Editor >
    About Qt Designer Plugins}.

    The standalone \QD is part of the Qt library used for building projects,
    located under \c {%SDK%\qt}. Therefore, it fetches plugins from the
    following folder: \c {%SDK%\qt\plugins\designer}. To check which plugins
    were loaded successfully and which failed, choose \gui{Help >
    About Plugins}.

67
    \section2 Configuring Qt Designer Plugins on OS X
68 69 70 71 72 73 74 75

    On the Mac, 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.
76
    Fore more information about how to deploy applications to Mac OS, see
77
    \l{Qt for Mac OS X - Deployment}.
78 79 80 81 82 83 84

    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

85
        \li To check the paths used in the Qwt library, enter the following
86 87
            \c otool command:

88
            \include doc_src_plugins.qdocinc 0
89 90 91 92 93

            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:

94
            \include doc_src_plugins.qdocinc 1
95 96


97
        \li You must copy the \QD plugin and the Qwt library files to the
98 99 100 101
            following locations:

            \list

102
                \li \c {libqwt_designer_plugin.dylib} to
103 104
                    \c {QtCreator.app/Contents/MacOS/designer}

105
                \li  \c {libqwt.*.dylib} to \c {QtCreator.app/Contents/Frameworks}
106 107 108 109 110

            \endlist

            Enter the following commands:

111
            \include doc_src_plugins.qdocinc 4
112

113
        \li Enter the following \c otool command to check the libraries that are
114 115
            used by the Qwt library:

116
            \include doc_src_plugins.qdocinc 2
117 118 119

            The command returns the following output:

120
            \include doc_src_plugins.qdocinc 3
121

122
        \li Enter the following \c install_name_tool command to fix the
123 124
            references of the libraries:

125
            \include doc_src_plugins.qdocinc 5
126 127 128 129 130

    \endlist

    \section1 Matching Build Keys

131
    The \QC that is included in pre-built Qt packages on Windows is built with
132 133 134 135 136 137 138 139 140 141 142 143 144
    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 \gui{Help > 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.

*/