.qml
extension..qml
extension.import QtQuick 1.0 Image { id: button source: "images/button.png" Text { id: label text: "Push me!" color: "white" anchors.horizontalCenter: parent.horizontalCenter anchors.top: parent.top anchors.topMargin: 6 } MouseArea { anchors.fill: parent onClicked: { label.text = "Thanks!"; } } }
import QtQuick 1.0 Item { id: myItem width: 400 height: 400 ButtonSimple { id: myButton anchors.horizontalCenter: myItem.horizontalCenter anchors.bottom: myItem.bottom anchors.bottomMargin: 20 } }
ButtonSimple.qml
and reusing-buttonsimple.qml
must be in the same directory.property
to expose a component's internal propery to the outside: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!"; } } }
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 } }
signal
declaration is similar to a property
declaration except that it's used to let the outside world determine behavior.buttonClicked
is declared as a signal, and that signal is emitted whenever the MouseArea is clicked.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(); } } }
onButtonClicked
):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!"; } } }