domingo, 18 de novembro de 2012

Kivy: Funcionamento dos widgets


 
Este post explica um pouco sobre o funcionamento dos widgets no Kivy.

Widgets no Kivy o todos os elementos que compõem a GUI (Graphical User Interface). De forma básica, tudo que você vê na tela, que pode haver uma interação, é um widget. Acordeões, painéis, caixas de texto, caixas de seleção, barras progressivas, labels, switches e tudo que você pode clicar ou arrastar são widgets, que podem ou não fazer parte de outros widgets.



O pacote portátil de instalação do Kivy vem com vários aplicativos exemplos para desenvolvimento. O código da aplicação com exemplos de widgets mostrados nas imagens acima estão disponíveis no diretório kivy\examples\demo\showcase do pacote de instalação do Kivy.

Widgets são elementos de interface gráfica de dados encapsulados. Havendo interação, os dados são recebidos, processados e o widget é devolvido à tela com sua (nova) representação visual.

A representação gráfica de um widget ocorre de forma aninhada. Isso que dizer que são separados entre si, mas ao mesmo tempo estão agrupados ou encadeados a outros widgets formando aplicações simples ou complexas.

Um grande artifício da biblioteca Kivy é que os widgets podem ser robustamente personalizados. A biblioteca lhe oferece uma gama de opções disponíveis para a personalização de widgets já pré-definidos e para a criação de novos widgets. A classe Widget é a classe principal para a criação de widgets e foi desenvolvida com os seguintes princípios em mente:

  • Event Driven - Os widgets são movidos a eventos que ocorrem durante a interação. Não havendo mudanças em suas propriedades, então nada acontecerá. A classes Property é responsável pela mudança de propriedades.
  •  Representação gráfica separadaOs widgets são propositalmente separados de sua representação gráfica. Isso permite a você criar o seu próprio design ou apenas modificar um design padrão já existente. A classe Canvas possui todos os recursos necessários para a criação gráfica de widgets.
  •  Bounding Box e Bouding Collision - Na prática, para toques ou cliques na tela, a biblioteca lhe oferece métodos que lhe informam se aquele toque ou clique atingiram as delimitações de um widget (Bouding Box) definidos pelo seu tamanho e posição, mesmo para formas mais complexas com uma circulo ou poligono. Também lhe são fornecidos métodos para saber se houve um Bounding Collision ou seja, se um widget colidiu com um outro widget.

Segue abaixo uma lista de widgets do Kivy de acordo com a sua funcionalidade.

Widgets básicos (UX - User Experience widgets) - São os widgets clássicos mais comuns ao usuário, também são usados na criação de widgets mais complexos.

  • Label
  • Button
  • CheckBox
  • Image 
  • Slider
  • Progress Bar 
  • Text Input
  • Toggle Button
  • Switch
  • Video

Widgets de layout - São widgets que não possuem uma renderização, são usados para calcular e definir a posição de outros widgets na tela.

  • Grid Layout
  • Box Layout
  • Anchor Layout
  • Stack Layout 
  
Widgets UX complexos - São combinações dos UX Widgets. Mesmo sendo combinações não possuem exatamente o mesmo uso que os UX widgets.

  • Bubble
  • Drop-Down List
  • FileChooser
  • Popup
  • Spinner
  • TabbedPanel
  • Video Player
  • VKeyboard

Widgets de comportamento - Os widgets de comportamento, assim como os widgets de layout também não possuem renderização. São utilizados na parte gráfica ou na interação principalmente através de toques. Em outras palavras, são utilizados no controle de mudanças de posições, rotações e escala quando uma ou mais dedos são tocados na tela.

  • Scatter
  • Stencil View


Widgets de gerenciamento de telas- É utilizado no gerenciamento de controle de telas múltiplas. Possui várias opções de transições para a mudança de telas.

  • Screen Manager 

 
 
Mais informações sobre widgets são encontradas na documentação oficial do Kivy.


Um comentário: