blob: e4857f0d6a573087a802927c43cf45618aacb5a9 [file] [log] [blame]
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** 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.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\page qml-glossary.html
\title Glossary Of QML Terms
\brief Glossary of terms used in the documentation for QML and Qt Quick
\section1 Common Terms
\table
\header
\li Term
\li Definition
\row
\li QML
\li The language in which QML applications are written. The language
architecture and engine are implemented by the Qt QML module.
\row
\li Qt Quick
\li The standard library of types and functionality for the
QML language, which is provided by the Qt Quick module,
and may be accessed with "import QtQuick 2.3".
\row
\li Type
\li In QML, a \e type may refer to either a
\l{qtqml-typesystem-topic.html}{Basic Type} or a
\l{qtqml-typesystem-topic.html#qml-object-types}{QML Object Type}.
The QML language provides a number of built-in
\l{qtqml-typesystem-basictypes.html}{basic types}, and the
Qt Quick module provides various \l {Qt Quick QML Types}{Qt Quick types}
for building QML applications. Types can also be provided by
third-party developers through (\l{qtqml-modules-topic.html}{modules}) or by the application
developer in the application itself through \l{qtqml-documents-definetypes.html}{QML Documents}.
See \l{qtqml-typesystem-topic.html}{The QML Type System}
for more details.
\row
\li Basic Type
\li A \l{qtqml-typesystem-topic.html}{basic type} is a simple type
such as \c int, \c string and \c bool. Unlike
\l{qtqml-typesystem-topic.html#qml-object-types}{object types},
an object cannot be instantiated from a basic type; for example,
it is not possible to create an \c int object with properties,
methods, signals and so on.
Basic types are built into the QML language, whereas object types
cannot be used unless the appropriate
\l{qtqml-modules-topic.html}{module} is imported.
See \l{qtqml-typesystem-topic.html}{The QML Type System}
for more details.
\row
\li Object Type
\li A \l{qtqml-typesystem-topic.html#qml-object-types}{QML Object Type}
is a type that can be instantiated by the QML engine.
A QML type can be defined either by a document in a .qml file
beginning with a capital letter, or by a QObject-based C++ class.
See \l{qtqml-typesystem-topic.html}{The QML Type System}
for more details.
\row
\li Object
\li A QML object is an instance of a
\l{qtqml-typesystem-topic.html#qml-object-types}{QML Object Type}.
Such objects are created by the engine when it processes
\l{qtqml-syntax-basics.html#object-declarations}{object declarations},
which specify the objects to be created and the attributes that are to
be defined for each object.
Additionally, objects can be dynamically created at runtime through
Component.createObject() and Qt.createQmlObject().
See also \l{#lazy-instantiation}{Lazy Instantiation}.
\row
\li Component
\li A component is a template from which a QML object or object
tree is created. It is produced when a document is loaded by
the QML engine. Once it has been loaded, it can be used to
instantiate the object or object tree that it represents.
Additionally, the \l Component type is a special type that can
can be used to declare a component inline within a document.
Component objects can also be dynamically created through
Qt.createComponent() to dynamically create QML objects.
\row
\li Document
\li A \l{qtqml-documents-topic.html}{QML Document} is a self
contained piece of QML source code that begins with one or more
import statements and contains a single top-level object
declaration. A document may reside in a .qml file or a text string.
If it is placed in a .qml file whose name begins with a capital
letter, the file is recognized by the engine as a definition of
a QML type. The top-level object declaration encapsulates the
object tree that will be instantiated by the type.
\row
\li Property
\li A property is an attribute of an object type that has a name and
an associated value; this value can be read (and in most cases, also
written to) externally.
An object can have one or more properties. Some properties
are associated with the canvas (e.g., x, y, width, height,
and opacity) while others may be data specific to that type
(e.g., the "text" property of the \l Text type).
See \l{qtqml-syntax-objectattributes.html}{QML Object Attributes}
for more details.
\row
\li Binding
\li A binding is a JavaScript expression which is "bound" to a
property. The value of the property at any point in time
will be the value returned by evaluating that expression.
See \l{qtqml-syntax-propertybinding.html}{Property Binding}
for more details.
\row
\li Signal
\li A signal is a notification from a QML object. When an object emits
a signal, other objects can receive and process this signal through
a \l{Signal Attributes}{signal handler}.
Most properties of QML objects
have a change signal, and also an associated change signal handler
which may be defined by clients to implement functionality. For
example, the "onClicked()" handler of an instance of the MouseArea
type might be defined in an application to cause a sound to be
played.
See \l{qtqml-syntax-signals.html}{Signal and Handler Event System}
for more details.
\row
\li Signal Handler
\li A signal handler is the expression (or function) which is triggered
by a signal. It is also known as a "slot" in C++.
See \l{qtqml-syntax-signals.html}{Signal and Handler Event System}
for more details.
\row
\target lazy-instantiation
\li Lazy Instantiation
\li Object instances can be instantiated "lazily" at run-time,
to avoid performing unnecessary work until needed. Qt Quick
provides the \l Loader type to make lazy instantiation more
convenient.
\endtable
*/