diff options
author | Jerome Pasion <jerome.pasion@nokia.com> | 2011-02-10 10:50:17 (GMT) |
---|---|---|
committer | Jerome Pasion <jerome.pasion@nokia.com> | 2011-02-10 10:50:17 (GMT) |
commit | 208715da3f06a862081f86548348518f9bc63177 (patch) | |
tree | add28358953c792f88fa96ad545cd75956971f75 /doc/src/declarative | |
parent | 69500fc302cd52033a058c601bdbad3a31ed2971 (diff) | |
download | Qt-208715da3f06a862081f86548348518f9bc63177.zip Qt-208715da3f06a862081f86548348518f9bc63177.tar.gz Qt-208715da3f06a862081f86548348518f9bc63177.tar.bz2 |
Re-wrote QML Reusable Components documentation
Task-number: QTBUG-16071
Diffstat (limited to 'doc/src/declarative')
-rw-r--r-- | doc/src/declarative/basicelements.qdoc | 9 | ||||
-rw-r--r-- | doc/src/declarative/qmlreusablecomponents.qdoc | 40 |
2 files changed, 38 insertions, 11 deletions
diff --git a/doc/src/declarative/basicelements.qdoc b/doc/src/declarative/basicelements.qdoc index 5997998..ad53ea4 100644 --- a/doc/src/declarative/basicelements.qdoc +++ b/doc/src/declarative/basicelements.qdoc @@ -109,15 +109,6 @@ the component will retain the top-level component's properties. If a non-visual component is the top-level component, the visual properties should be aliased to the top-level to display the component properly. -A component implemented using a \c Rectangle as the top-level component: -\snippet doc/src/snippets/declarative/focus/mywidget.qml document - -A component that uses a \c FocusScope as the top-level component: -\snippet doc/src/snippets/declarative/focus/myfocusscopewidget.qml document -Note that the visual properties need to be passed to the parent. The -\l {Keyboard Focus in QML}{focus} article provides more details about the -\c FocusScope element. - For more information on how to build upon QML elements, see the \l{Importing Reusable Components} document. */ diff --git a/doc/src/declarative/qmlreusablecomponents.qdoc b/doc/src/declarative/qmlreusablecomponents.qdoc index 0fd5515..956fa24 100644 --- a/doc/src/declarative/qmlreusablecomponents.qdoc +++ b/doc/src/declarative/qmlreusablecomponents.qdoc @@ -74,14 +74,14 @@ declaring a \c Button. The button is defined in the \snippet doc/src/snippets/declarative/reusablecomponents/application.qml document Note that the component name, \c Button, matches the QML filename, \c Button.qml. -Specifically, the first character is in upper case. Matching the names allow +Also, the first character is in upper case. Matching the names allow components in the same directory to be in the direct import path of the application. For flexibility, a \c qmldir file is for dictating which additional components, plugins, or directories should be imported. By using a \c qmldir file, component names do not need to match the filenames. The \c qmldir file should, -however, in an imported path. +however, be in an imported path. \snippet doc/src/snippets/declarative/reusablecomponents/qmldir document \section2 Loading an Inline Component @@ -103,6 +103,42 @@ Specifically, there are \l{attached-properties}{attached properties} and \l{attached-signalhandlers}{attached signal handlers} for setting properties during the lifetime of a component. +The \c{Component.onCompleted} attached signal handler is called when the +component completes initialization. It is useful for executing any commands +after component initialization. Similarly, the \c{Component.onDestruction} +signal handler executes when the component finishes destruction. + +\keyword qml-top-level +\section1 Top-Level Component + +Choosing the \e{top-level} or the \e{root} object of components is an important +design aspect because the top-level object dictates which properties are +accessible outside the component. Some elements are not visual elements and +will not have visual properties exposed outside the component. Likewise, some +elements add functionality that are not available to visual elements. + +Consider the Button component from the +\l{qml-define-components}{Defining New Components} section; it's top-level +object is a \l Rectangle. When imported, the Button component will possess the +Rectangle's properties, methods, signals, and any custom properties. + +\snippet doc/src/snippets/declarative/reusablecomponents/Button.qml parent begin +\snippet doc/src/snippets/declarative/reusablecomponents/Button.qml ellipses +\snippet doc/src/snippets/declarative/reusablecomponents/Button.qml properties +\snippet doc/src/snippets/declarative/reusablecomponents/Button.qml ellipses +\snippet doc/src/snippets/declarative/reusablecomponents/Button.qml parent end + +The Button's \c text alias is accessible from outside the component as well as +the Rectangle's visual properties and signals such as \c x, \c y, \c anchors, +and \c states. + +Alternatively, we may choose a \l {Keyboard Focus in QML}{FocusScope} as our +top-level object. The \l FocusScope element manage keyboard focus for its +children which is beneficial for certain types of interfaces. However, since +\c FocusScopes are not visual elements, the visual properties of its child need +to be exposed. + +\snippet doc/src/snippets/declarative/reusablecomponents/focusbutton.qml document */ The root object in \c Button.qml defines the attributes that are available to users of the |