User Tools

Site Tools


qt-quick-for-designers-1:components

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
qt-quick-for-designers-1:components [2013/06/22 03:20] – created mithatqt-quick-for-designers-1:components [2013/07/06 22:53] (current) – [Resources] mithat
Line 46: Line 46:
 </file> </file>
     * ''ButtonSimple.qml'' and ''reusing-buttonsimple.qml'' must be in the same directory.     * ''ButtonSimple.qml'' and ''reusing-buttonsimple.qml'' must be in the same directory.
 +
 +===== Properties =====
 +  * You can declare a ''property'' to expose a component's internal propery to the outside:
 +<file javascript ButtonSimple2.qml>
 +import QtQuick 1.0
 +
 +Image {
 +    id: button
 +    source: "images/button.png"
 +
 +    property string labelText
 +
 +    Text {
 +        id: label
 +        text: labelText
 +        color: "white"
 +        anchors.horizontalCenter: parent.horizontalCenter
 +        anchors.top: parent.top
 +        anchors.topMargin: 6
 +    }
 +
 +    MouseArea {
 +       anchors.fill: parent
 +       onClicked: {
 +           label.text = "Thanks!";
 +       }
 +   }
 +}</file>
 +
 +<file javascript reusing-buttonsimple2.qml>
 +import QtQuick 1.0
 + 
 +Item {
 +    id: myItem
 +    width: 400
 +    height: 400
 +
 +    ButtonSimple2 {
 +        id: myButton
 +        labelText: "Hey you!"
 +        anchors.horizontalCenter: myItem.horizontalCenter
 +        anchors.bottom: myItem.bottom
 +        anchors.bottomMargin: 20
 +    }
 +}</file>
 +
 +===== Signals =====
 +  * A ''signal'' declaration is similar to a ''property'' declaration except that it's used to let the outside world determine behavior.
 +  * In the Button below, ''buttonClicked'' is declared as a signal, and that signal is emitted whenever the MouseArea is clicked.
 +<file javascript Button.qml>
 +import QtQuick 1.0
 +
 +Image {
 +    id: button
 +    source: "images/button.png"
 +
 +    property string labelText
 +    signal buttonClicked()
 +
 +    Text {
 +        id: label
 +        text: labelText
 +        color: "white"
 +        anchors.horizontalCenter: parent.horizontalCenter
 +        anchors.top: parent.top
 +        anchors.topMargin: 6
 +    }
 +
 +    MouseArea {
 +       anchors.fill: parent
 +       onClicked: {
 +           button.buttonClicked();
 +       }
 +   }
 +}</file>
 +  * The actual behavior is defined in the file where Button is used (as ''onButtonClicked''):
 +<file javascript resuing-button.qml>
 +import QtQuick 1.0
 + 
 +Item {
 +    id: myItem
 +    width: 400
 +    height: 400
 +
 +    Button {
 +        id: button
 +        labelText: "PRESS"
 +        anchors.horizontalCenter: myItem.horizontalCenter
 +        anchors.bottom: myItem.bottom
 +        anchors.bottomMargin: 20
 +
 +        onButtonClicked:{
 +            button.labelText="Hooray!";
 +        }
 +    }
 +}
 +</file>
 +
 +--------------------------------------------------------------
 +====== Resources ======
 +  * {{:qt-quick-for-designers-1:images.zip|}}
 +  * All source code is subject to this [[copyright header|copyright]].
qt-quick-for-designers-1/components.1371871234.txt.gz · Last modified: 2013/06/22 03:20 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki