Chapter one starts with a minimal "Hello world" program and the following chapters introduce new concepts.
-The tutorial's source code is located in the $QTDIR/examples/declarative/tutorials/helloworld directory.
+The tutorial's source code is located in the $QTDIR/examples/tutorials/helloworld directory.
Tutorial chapters:
Here is the QML code for the application:
-\snippet examples/declarative/tutorials/helloworld/tutorial1.qml 0
+\snippet examples/tutorials/helloworld/tutorial1.qml 0
\section1 Walkthrough
First, we need to import the types that we need for this example. Most QML files will import the built-in QML
types (like \l{Rectangle}, \l{Image}, ...) that come with Qt, using:
-\snippet examples/declarative/tutorials/helloworld/tutorial1.qml 3
+\snippet examples/tutorials/helloworld/tutorial1.qml 3
\section2 Rectangle element
-\snippet examples/declarative/tutorials/helloworld/tutorial1.qml 1
+\snippet examples/tutorials/helloworld/tutorial1.qml 1
We declare a root element of type \l{Rectangle}. It is one of the basic building blocks you can use to create an application in QML.
We give it an \c{id} to be able to refer to it later. In this case, we call it "page".
\section2 Text element
-\snippet examples/declarative/tutorials/helloworld/tutorial1.qml 2
+\snippet examples/tutorials/helloworld/tutorial1.qml 2
We add a \l Text element as a child of the root Rectangle element that displays the text 'Hello world!'.
For example, to run the provided completed Tutorial 1 example from the install location, you would type:
\code
-bin/qmlviewer $QTDIR/examples/declarative/tutorials/helloworld/tutorial1.qml
+bin/qmlviewer $QTDIR/examples/tutorials/helloworld/tutorial1.qml
\endcode
*/
Here is the QML code for \c Cell.qml:
-\snippet examples/declarative/tutorials/helloworld/Cell.qml 0
+\snippet examples/tutorials/helloworld/Cell.qml 0
\section1 Walkthrough
\section2 The Cell Component
-\snippet examples/declarative/tutorials/helloworld/Cell.qml 1
+\snippet examples/tutorials/helloworld/Cell.qml 1
The root element of our component is an \l Item with the \c id \e container.
An \l Item is the most basic visual element in QML and is often used as a container for other elements.
-\snippet examples/declarative/tutorials/helloworld/Cell.qml 4
+\snippet examples/tutorials/helloworld/Cell.qml 4
We declare a \c cellColor property. This property is accessible from \e outside our component, this allows us
to instantiate the cells with different colors.
This property is just an alias to an existing property - the color of the rectangle that compose the cell
(see \l{Property Binding in QML}).
-\snippet examples/declarative/tutorials/helloworld/Cell.qml 5
+\snippet examples/tutorials/helloworld/Cell.qml 5
We want our component to also have a signal that we call \e clicked with a \e cellColor parameter of type \e color.
We will use this signal to change the color of the text in the main QML file later.
-\snippet examples/declarative/tutorials/helloworld/Cell.qml 2
+\snippet examples/tutorials/helloworld/Cell.qml 2
Our cell component is basically a colored rectangle with the \c id \e rectangle.
The \c anchors.fill property is a convenient way to set the size of an element.
In this case the rectangle will have the same size as its parent (see \l{anchor-layout}{Anchor-Based Layout}).
-\snippet examples/declarative/tutorials/helloworld/Cell.qml 3
+\snippet examples/tutorials/helloworld/Cell.qml 3
In order to change the color of the text when clicking on a cell, we create a \l MouseArea element with
the same size as its parent.
In our main QML file, we use our \c Cell component to create the color picker:
-\snippet examples/declarative/tutorials/helloworld/tutorial2.qml 0
+\snippet examples/tutorials/helloworld/tutorial2.qml 0
We create the color picker by putting 6 cells with different colors in a grid.
-\snippet examples/declarative/tutorials/helloworld/tutorial2.qml 1
+\snippet examples/tutorials/helloworld/tutorial2.qml 1
When the \e clicked signal of our cell is triggered, we want to set the color of the text to the \e cellColor passed as a parameter.
We can react to any signal of our component through a property of the name \e 'onSignalName' (see \l{Signal Handlers}).
Here is the QML code:
-\snippet examples/declarative/tutorials/helloworld/tutorial3.qml 0
+\snippet examples/tutorials/helloworld/tutorial3.qml 0
\section1 Walkthrough
-\snippet examples/declarative/tutorials/helloworld/tutorial3.qml 2
+\snippet examples/tutorials/helloworld/tutorial3.qml 2
First, we create a new \e down state for our text element.
This state will be activated when the \l MouseArea is pressed, and deactivated when it is released.
(the items as they were initially defined in the QML).
Specifically, we set the \c y property of the text to \c 160, the rotation to \c 180 and the \c color to red.
-\snippet examples/declarative/tutorials/helloworld/tutorial3.qml 3
+\snippet examples/tutorials/helloworld/tutorial3.qml 3
Because we don't want the text to appear at the bottom instantly but rather move smoothly,
we add a transition between our two states.