QtQuick

1,059 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,059
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
33
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

QtQuick

  1. 1. t QtQuick Luís Gabriel Lima (lgnfl) Rafael Brandão (rbl)
  2. 2. Agenda
  3. 3. Agenda• O que é Qt?• Arquitetura do Qt• O que é QtQuick?• QML• Considerações finais
  4. 4. O que é Qt?
  5. 5. O que é Qt?• Qt é um framework C++ • desenvolvimento de aplicações cross-plataform • conjunto de APIs + GUI framework • biblioteca de classes C++ • ferramentas de desenvolvimento (IDE, build system, etc)• O Qt foi originalmente projetado para: • criação eficiente de programas desktop • GUI sendo esses programas com • e independentes de platorma• Trolltech (1991-2008), Nokia (2008-2011), Open Governance• Última versão: 4.7.4
  6. 6. Arquitetura do Qt
  7. 7. Arquitetura do Qt
  8. 8. Módulo QtGui• Widgets “tradicionais”
  9. 9. Graphics View Framework• Superfície para acesso rápido de itens gráficos • usa uma árvore BSP (Binary Space Partitioning) • permite propagação de eventos entre itens • visualização dos itens com suporte a zoom e rotações • visualização em tempo real de cenas com milhares de itens• Permite customização de itens, suportando: • tratamento de eventos (cliques, teclas, etc.) • agrupamento de itens (relação entre pai e filho, etc.) • detecção de colisões
  10. 10. O que é QtQuick?
  11. 11. O que é QtQuick?● Qt User Interface Creation Kit● QML● Qt Declarative● Qt Creator Tools● Objetivos: ● Criar UIs como um designer ● Sem conhecimento de C++ ● Poder de criação de interfaces flúidas
  12. 12. QML
  13. 13. QML (Qt Meta Language)• Descreve uma interface gráfica: • numa estrutura em árvore de bindings de propriedades • propriedades são avaliadas dinamicamente • comunicação é feita através do uso de sinais e slots • binding para código c++ é possível • animação de propriedades usando estados e transições
  14. 14. QML• Linguagem declarativa baseada em javascript • expressa com bindings entre propriedades • estruturada em uma árvore de objetos
  15. 15. QML• Contraste com uma linguagem imperativa • bindings de propriedades são expressões que são recalculadas sempre que o valor daquela propriedade muda • na imperativa, expressões são avaliadas uma única vez
  16. 16. QML• Componentes • um documento QML descreve a estrutura de um componente • nome do componente é o nome do arquivo
  17. 17. QML• Componentes • uma instância de um componente é criada durante a execução
  18. 18. QML• Componentes • partes internas não são visíveis por padrão por outros • API definida através de propriedades, funções e sinais• Propriedades • podem ser referenciadas pelo nome (iniciado em minuscula) • uma expressão de propriedade que referencia outra estabelece um binding (ligação) • sempre que uma propriedade muda, todos os valores ligados a ela serão alterados
  19. 19. QML• Propriedades • id são usadas para referenciar um objeto • list são um conjunto de elementos • default pode ser usada sem o nome (o atributo data a seguir)
  20. 20. QML• Propriedades • propriedades públicas são especificadas com property • tipos: int, bool, real, string, point, rect, size, time, etc.
  21. 21. QML• Propriedades • alias expõe uma propriedade interna para API pública •
  22. 22. QML• Sinais • componentes podem emitir sinais que serão processados por signal handlers • signal handlers seguem a sintaxe onNomeDoSinal
  23. 23. QML• Sinais • mudanças de propriedades podem ser ligadas a sinais • sintaxe: on<Propriedade>Changed • repare na letra maiscula em propriedade
  24. 24. QML• Sinais • podem ser definidos sinais com a palavra signal
  25. 25. QML• Funções •componente pode exportar funções que podem ser chamadas por outros componentes
  26. 26. Considerações finais
  27. 27. Links Úteishttp://doc.qt.nokia.com/latest/qtquick.htmlhttp://qt.nokia.com/learning/online/training/materials/qt-quick-for-designers/http://doc.qt.nokia.com/latest/qdeclarativeelements.htmlhttp://blog.qtlabs.org.br/http://www.qt-project.org/
  28. 28. Vídeoshttp://www.youtube.com/watch?v=rqt7vM_vP3ohttp://www.youtube.com/watch?v=LTDJrMu24b8http://circus.indt.org/http://www.youtube.com/watch?v=k5gMAMSz77Qhttp://www.youtube.com/watch?v=eyXuECm7OFQhttp://www.youtube.com/watch?v=UfLwZnTGcnAhttp://www.youtube.com/watch?v=KLQD2jYS-XUhttp://www.youtube.com/watch?v=b1eNx9Qmdcc
  29. 29. Referênciashttp://www.slideshare.net/tillinslidet/qtquick-day-1http://www.slideshare.net/elenakotina/qt-quick-qmlhttp://blog.qt.nokia.com/2010/02/15/meet-qt-quick/http://blog.qtlabs.org.br/2011/10/07/qml-restful-web-services/
  30. 30. Thats all folks, thank you! :-)
  31. 31. t QtQuick Luís Gabriel Lima (lgnfl) Rafael Brandão (rbl)

×