Como criar um Qt Quick UI usando o Qt Creator

Nessa aula vamos apresentar o editor de QML do Qt Creator, que permite a rápida prototipação de interfaces e até mesmo aplicativos completos.

Esse material é baseado na documentação do Qt Quick disponível em: http://qt-project.org/wiki/Qt_Quick.

Introdução

Em aulas anteriores vimos que é possível desenvolver interfaces de duas formas distintas:

Nessa aula vamos descrever como usar o editor do Qt Create para criar documentos QML a partir do módulo Qt Quick 2.2 do Qt5.

Qt Quick - o que é?

O Qt Quick é um arcabouço desenvolvido e mantido pelo Projeto Qt, que se tornou disponível a partir do Qt 4.7. O Qt Quick é baseado em uma linguagem declarativa que permite a construcão de interfaces dinâmicas, com transições fluidas e efeitos, comuns atualmente em dispositivos móveis. Essa linguagem é chamada de QML (Qt Modeling Language).

O QML é interpretado pelo módulo Qt Declarative, um interpretador que executa interfaces descritas em QML. Uma grande vantagem dessa linguagem é que ela não requer conhecimento de C++.

O Qt Creator é um ambiente visual para desenvolver interfaces usando Qt Quick e que oferece:

Os exemplos nessa aula foram testados no Qt Creator 3.1, baseado no Qt 5.2.1, usando QtQuick 2.2.

QML - primeiros passos

O QML é uma linguagem declarativa para definição de interfaces que facilita a integração entre JavaScript e objetos do Qt (QObjects). O QML é baseado em elementos gráficos ao invés de widgets. A versão atual oferece mais de 80 elementos. Dentre os tipos mais usuais podemos citar:

Uma interface descrita em QML deve utilizar elementos gráficos para definir a aparência da interface e outros elementos como de interação e estado que definem o comportamento da interface. Esses elementos são estruturados na forma de uma árvore de objetos com propriedades. As propriedades dos elementos é definida usando JavaScript.

Exemplo 1: criando um Qt Quick App no Qt Creator

Abra o Qt Creator. A figura abaixo mostra a janela inicial do Qt Creator 3.1 em um computador apple rodando Mac OS X.

Qt Creator Interface

Agora vamos criar um esqueleto de um aplicativo em QML. Clique em File --> New File or Project. Uma janela como abaixo deve aparecer. Selecione Applications e Qt Quick UI e então clique no botão Choose.

Qt Creator - New File

Você deve escolher um nome para o applicativo e definir também o diretório onde ele vai ser colocado. Por exemplo, o proj1 será criado no diretório qt.

Qt Creator Interface

Na próxima janela, selecione o QuickQt 2.2, como mostrado abaixo:

Select Component QuickQt 2.2

O Qt Create permite que o projeto seja adicionado como subprojeto de outro projeto Qt ou colocar o seu projeto sob um controlador de versão, como o git. Embora a gente recomende que você utilize controle de versão, nessa aula vamos continuar sem e simplesmente clique no botão Done.

Project Management

Pronto! O Qt Create deve mostrar agora no editor um esqueleto como abaixo.

Qt Creator Interface

O código do esqueleto é reproduzido abaixo.

import QtQuick 2.2

Rectangle {
    width: 360
    height: 360

    MouseArea {
        anchors.fill: parent
        onClicked: {
            Qt.quit();
        }
    }

    Text {
        anchors.centerIn: parent
        text: "Hello World"
    }
}

Observe que um programa em QML começa com um import dos pacotes necessários, nesse caso, o "QtQuick 2.2.".

Lembre-se que uma interface descrita em QML é descrita na forma de uma árvore de elementos. Nesse exemplo, o Rectangle, que é um elemento visual do Qt Quick, será a janela principal e a raiz da árvore. O Rectangle contém, dentro dele, dois outros elementos: o MouseArea e o Text.

Nesse código, as propriedades width e height do Rectangle recebem o valor 360. Esses valores, à esquerda do caractere ':' (dois pontos), podem ser definidos usando código em JavaScript. É importante saber que esses valores, ao invés de serem atribuídos, são referênciados. No caso de atribuições, os valores das propriedades seriam definidos no instante da atribuição, e esse valor não é mais alterado até uma segunda atribuição. No caso de uma referência, sempre que um valor associado a expressão JavaScript utilizado para definir a propriedade mudar, o valor da propriedade também é mudado (atualizado).

O MouseArea do Rectangle é um elemento de interação, que define uma área que recebe a entrada do mouse. Nesse caso, essa área ocupa toda aregião do elemento pai (o Rectangle) e, quando o elemento é clicado (recebe um clique do mouse), a aplicação é fechada.

O Text é um elemento visual que exibe texto. Nesse caso, o texto "Hello World" é exibido no centro do Rectangle.

Para testar esse aplicativo, basta clicar no triângulo verde na coluna da esquerda do Qt Create, ou , e a seguinte janela deve aparecer:

Janela do
                                              Hello World

Agora que você testou a sua instalação, clique aqui para aprender um pouco mais sobre como prototipar interfaces usando o Qt Quick e QML.

Clique


Last modified: Wed May 21 22:36:26 BRT 2014