creating-plugins.qdoc 3.07 KB
Newer Older
1
/****************************************************************************
2
**
3 4
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
5
**
6
** This file is part of the Qt Creator documentation.
7
**
8 9 10 11 12 13 14
** 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.
15
**
16
** GNU Free Documentation License Usage
17 18
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
19 20 21 22
** 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.
23
**
24
****************************************************************************/
25 26 27 28 29

/*!
    \page creating-plugins.html
    \title Creating Plugins

Tobias Hunger's avatar
Tobias Hunger committed
30 31 32 33 34 35
    At its very core, \QC consists of a plugin loader that loads and runs a set
    of plugins, which then actually provide the functionality that you know from
    \QC the IDE. So, even the main application window and menus are all provided
    by plugins. Plugins can use different means to provide other plugins access
    to their functionality and to allow them to extend certain aspects of the
    application.
36

Tobias Hunger's avatar
Tobias Hunger committed
37
    For example the \c Core plugin, which is the very basic plugin that must be
38 39 40
    present for \QC to run at all, provides the main window itself, and API
    for adding menu items, modes, editor types, navigation panels and many other
    things.
Tobias Hunger's avatar
Tobias Hunger committed
41 42 43 44 45

    The \c TextEditor plugin provides a framework and base implementation for
    different text editors with highlighting, completion and folding, that is
    then used by other plugins to add more specialized text editor types to \QC,
    like for editing C/C++ or \c {.pro} files.
46 47 48

    After reading this guide you will know what a basic plugin consists of,
    how to write a plugin specification file, what the lifecycle of a plugin is,
Tobias Hunger's avatar
Tobias Hunger committed
49 50 51
    what the general principles for extending existing plugins' functionality
    and providing interfaces for other plugins are, and will be able to write
    your first plugin.
52 53

    \section1 Basics
Tobias Hunger's avatar
Tobias Hunger committed
54

55
    \list
Tobias Hunger's avatar
Tobias Hunger committed
56 57 58 59
        \li \l{Getting and Building Qt Creator}
        \li \l{Creating Your First Plugin}
        \li \l{Plugin Meta Data}
        \li \l{Plugin Life Cycle}
60 61 62
    \endlist

    \section1 Design Principles
Tobias Hunger's avatar
Tobias Hunger committed
63

64
    \list
Tobias Hunger's avatar
Tobias Hunger committed
65 66 67
        \li \l{The Plugin Manager, the Object Pool, and Registered Objects}
        \li \l{Aggregations}
        \li \l{Extending and Providing Interfaces}
68 69 70
    \endlist

    \section1 Creating 3rd-Party Plugins
Tobias Hunger's avatar
Tobias Hunger committed
71

72
    \list
Tobias Hunger's avatar
Tobias Hunger committed
73 74
        \li \l{A Note on Binary Compatibility}
        \li \l{Creating User-Installable Plugins}
75 76
    \endlist
*/