QML Javascript

QML | | QML Interactive UI Elements

QML is based on Javascript, so it inherits the following properties from it:

  • One file is a class, that is a blueprint of an object
  • Each object can contain a set of property entries
  • Each property is defined by a “<property>: <value>” entry
  • Changes of the objects properties are automatically reflected in the uses elsewhere
  • Changes of an object’s property “<P>” triggers the observer pattern in “on<P>Changed:”
  • Each class can contain new elements of other class types via a “<Class> {}” entry

But QML extends Javascript as follows:

  • Predefined “Item {}”, “Rectangle {}”, “MouseArea {}”, “Text {}”, etc. classes which map to visible elements of the ui
  • Predefined “id” property which assigns an unique name to an object
  • Predefined “anchor” properties which place an element relative to its parent
  • Predefined “color” property to define the color of the background resp. text
  • Predefined “visible” property which enables an element or not
  • Each visible element is displayed by an OpenGL / OpenGL ES rendering backend
  • Full support for transparency via OpenGL
  • Extensions for ui animations

As an example a green rectangle that fills the entire available window or screen space with a child text element at the bottom left:

Rectangle {
    id: top
    color: "green"

    Text {
        anchors.centerIn: parent
        font.pointSize: 10
        color: "white"
        text: "Size=" + top.width + "x" + top.height

Screen shot of the above QML example:

QML | | QML Interactive UI Elements