Académique Documents
Professionnel Documents
Culture Documents
Por qu?
Muito cdigo necessrio, quando se usa a antiga API de UI do Qt (GraphicsView) Diminuindo a velocidade para criar UIs Qualquer modificao == compilar cdigo
O que QML?
Introduzido no Qt 4.7 Linguagem declarativa para criar UIs ricas Descreve a cara da UI, assim como seu comportamento UI tratada como uma arvre de objetos, com propriedades (colocar exemplo de properties)
Benefcios
Facilidade para criar UIs ricas Menos cdigo Totalmente integrada com o Qt Integrada com JavaScript
Plugins
Sem compilao
variant
url color date
time
...
Mouse e interao
Posicionadores e repetidores
Column
Row
Grid
Repeater
Anchor Layout
Anchor Layout
Exemplo
Propriedades
Componentes QML tem propriedades que podem ser lidas e modificadas por outros objetos Propriedades podem ser criadas pelo desenvolvedor
Property Binding
Faz um bind do valor de uma propriade, para ter sempre o valor de outra propriedade
Property Binding
Tenha cuidado quando referenciar o pai de um objeto que est sendo usado como binding
Property Aliases
Elemento Binding
Usado para assegurar que a propriedade target sempre ter um determinado valor
Signals e Handlers
Signals: Mesmo conceito do Qt Cada sinal tem o seu handler, sempre no formato: on<signalName>
Signals e Handlers
Cada propriedade do QML tem seu signal Consequentemente, cada signal da propriedade, tambm ter seu handler Formato: on<propertyName>Changed
Eventos de Mouse
Elemento MouseArea
Signals
Eventos de Mouse
Exemplo
Eventos de Mouse
Objeto mouse
Criando Componentes
Criando Componentes
Exemplo:
Criando Componentes
Quando utilizar dentro de outro arquivo, o nome deve ser igual ao usado para nomear o arquivo Component.onCompleted e Component.onDestruction
Handlers usados para fazer alguma ao quando o componente acaba de ser carregado ou destrudo
Criando Componentes
Estados
Componentes podem ter vrios estados Dependendo do estado, algumas aes podem ser tomadas, propriedades mudadas, etc. Exemplo: um sinal de trnsito Conjunto de propriedades definidas em um elemento State
Estados
Elementos de um State
PropertyChanges
StateGroup
StateChangeScript ParentChange
AnchorsChanges
Propriedade state sempre presente em um Item Item sempre inicia no estado default
Criando Estados
Criando Estados
Estados podem ser ativados de acordo com alguma condio, usando a propriedade when
Animaes e Transies
Animaes e Transies
Animao de propriedades
PropertyAnimation
NumberAnimation
ParentAnimation AnchorAnimation
Animaes e Transies
Exemplo
Animaes e Transies
Exemplo
Views e Models
View e Models
Delegate
Views e Models
ListModel
Views e Models
XmlListModel
Views e Models
Exemplo
Criando Tipos
Tipos mais complexos podem ser criados no C++ e exportados pro QML
Herdam de QObject
Plugins so utilizados para isso
Criando Tipos
Crie seu tipo, derivando de QObject e exporte as propriedade usando a macro Q_PROPERTY Registre seu tipo com o mtodo registerTypes()
Exporte seu plugin usando a macro Q_EXPORT_PLUGIN2 Crie um arquivo qmldir, para expor seu plugin
Criando Tipos
Criando Tipos
Exemplo de Plugin
Criando Tipos
Criando Tipos
Wizard do QtCreator