Widget

Alguns widgets Widgets da área de trabalho

Um widget, numa interface gráfica, é um elemento de interação - tal como janelas, botões, menus, ícones, barras de rolagem etc. O termo pode também se referir aos pequenos aplicativos que flutuam pela área de trabalho e fornecem funcionalidades específicas ao utilizador (previsão do tempo, cotação de moedas, relógio etc.)

Alguns widgets tem por objetivo receber dados do usuário e com isso gerar algum tipo de registro, como os controles de formulário. Componentes tais como entrada de texto, caixa de seleção, menu de seleção, botões de múltipla escolha e outros são capazes de definir a natureza dos dados a serem coletados e, dessa forma, enumerar todas as possibilidades de dados a serem apresentados pelo usuário. Entradas de texto melhor representam dados de múltiplos tipos, ao passo que menus de seleção e grupos de botões de múltipla escolha determinam um conjunto finito de possibilidades para o usuário.

Afirma-se que o termo widget é uma derivação da junção de duas palavras inglesas, "window" e "gadget", porém isto é improvável. A primeira ocorrência desta foi encontrada em Beggar on Horseback (1924), uma peça escrita por George S. Kaufman e Marc Connelly. A peça se refere à protagonista que vivencia a dúvida entre ser um artista, com pouco ou nenhum retorno financeiro ou trabalhar em uma linha de produção de widgets, em que o autor se referencia claramente a objetos inanimados com um valor puramente mercantil e sem nenhuma ligação espiritual ou artística.

Classificação

Podemos classificar os widgets em duas categorias principais, os widgets de baixo nível e os widgets de alto nível.

Widgets de baixo nível são utilizados na confecção do sistema operacional e fazem parte do núcleo do sistema. Alguns exemplos são:

Este núcleo é acessado por outros widgets de alto nível que por fim montam a GUI.

Widgets de alto nível seriam os objetos finais propriamente ditos. Muitas vezes fazem referências a objetos de baixo nível fornecidos pelo comando do sistema operacional. Estes objetos são facilmente encontrados em bibliotecas de desenvolvimento (toolkit) ou em frameworks. Alguns exemplos são:

Ligações externas