diff options
Diffstat (limited to 'doc/src/qml/qmlplugins.qdoc')
-rw-r--r-- | doc/src/qml/qmlplugins.qdoc | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/doc/src/qml/qmlplugins.qdoc b/doc/src/qml/qmlplugins.qdoc deleted file mode 100644 index b81c4c5ae1..0000000000 --- a/doc/src/qml/qmlplugins.qdoc +++ /dev/null @@ -1,133 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** 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. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -/*! -\page qml-plugins.html -\title QML Plugins -\target qml-plugins -\brief importing Qt C++ functions as plugins - - - The \l{The QML Engine}{QML engine} can run Qt C++ applications - by \l{register-c++-type}{registering} types into the runtime and by loading - C++ code as plugins. Plugins are imported and labeled as modules and - its content are available as components. - - QQmlExtensionPlugin is a plugin interface that makes it possible to - create QML extensions that can be loaded dynamically into QML applications. - These extensions allow custom QML types to be made available to the - QML engine. - - To write a QML extension plugin: - \list 1 - \li Subclass QQmlExtensionPlugin - \li Implement QQmlExtensionPlugin's - \l{QQmlExtensionPlugin::}{registerTypes()} method - \li Register types with qmlRegisterType() - \li Export the class using the Q_EXPORT_PLUGIN2() macro - \li Write a project file for the plugin - \li Create a \l{Writing a qmldir file}{qmldir file} to describe the plugin - \endlist - - QML extension plugins are for either application-specific or library-like - plugins. Library plugins should limit themselves to registering types, as - any manipulation of the engine's root context may cause conflicts or other - issues in the library user's code. - -\section1 Plugin Example - - Suppose there is a new \c TimeModel C++ class that should be made available - as a new QML element. It provides the current time through \c hour and \c minute - properties. - - \snippet examples/declarative/cppextensions/plugins/plugin.cpp 0 - \dots - - A plugin class, \c QExampleQMLPlugin, is a subclass of - \l QQmlExtensionPlugin and it implements the - \l{QQmlExtensionPlugin::}{registerTypes()} method. - - In the registerTypes() method, the plugin class can - \l{register-c++-type}{register} the \c TimeModel class to the declarative - runtime with the qmlRegisterType() function. The Q_EXPORT_PLUGIN2() macro has - two parameters, the generated plugin name and the class name. - - \snippet examples/declarative/cppextensions/plugins/plugin.cpp plugin - \codeline - \snippet examples/declarative/cppextensions/plugins/plugin.cpp export - - The \c TimeModel class receives a \c{1.0} version of this plugin library, as - a QML type called \c Time. The Q_ASSERT() macro can ensure the module is - imported correctly by any QML components that use this plugin. The - \l{Creating QML Types} article has more information about registering C++ - types into the runtime. - - For this example, the TimeExample source directory is in - \c{com/nokia/TimeExample}. The plugin's module import statement will follow - this structure. - - The project file, in a \c .pro file, defines the project as a plugin library - and specifies it should be built into the \c com/nokia/TimeExample - directory: - - \code - TEMPLATE = lib - CONFIG += qt plugin - QT += declarative - - DESTDIR = com/nokia/TimeExample - TARGET = qmlqtimeexampleplugin - ... - \endcode - - Finally, a \l{Writing a qmldir file}{qmldir file} is required in the \c - com/nokia/TimeExample directory to specify the plugin. This directory - includes a \c Clock.qml file that should be bundled with the plugin, so it - needs to be specified in the \c qmldir file: - - \quotefile examples/declarative/cppextensions/plugins/com/nokia/TimeExample/qmldir - - Once the project is built and installed, the new \c Time component is - accessible by any QML component that imports the \c com.nokia.TimeExample - module - - \snippet examples/declarative/cppextensions/plugins/plugins.qml 0 - - The full source code is available in the \l {declarative/cppextensions/plugins}{plugins example}. - - -\section1 Reference - - \list - \li \l {Tutorial: Writing QML extensions with C++} - contains a chapter - on creating QML plugins. - \li \l{Creating QML Types} - information about registering C++ types into - the runtime. - \li \l{How to Create Qt Plugins} - information about Qt plugins - \endlist - - -*/ |