Programação em GUI/Widgets
A unidade básica de um programa com interface gráfica se chama widget, termo em inglês.
Widgets podem ser janelas, botões, menus, ícones, barras de rolagem, etc.
Um programa deve definir uma hierarquia de widgets, na qual alguns widgets estão subordinados a outros. Normalmente, todos os widgets são transitivamente subordinados a um widget principal, mas existem exceções: o programa pode gerar aplicativos separados do seu widget principal.
Trabalhar com vários widgets é a principal diferença entre um programa GUI e um programa normal. No último caso, o programador procura sempre saber qual ponto do programa está sendo executado; no programa GUI, é o sistema gerenciador de janelas que escolhe qual parte do programa (ou seja, qual parte de qual widget) está sendo rodado.
A "conversa" entre os diversos widgets usualmente é feita de forma indireta. Widgets disparam mensagens indicando as ações executadas sobre ele, e estas mensagens são recebidas pelos outros widgets para efetuar as ações desejadas.
Exemplos
[editar | editar código-fonte]Os exemplos mostram um widget raiz, com vários widgets subordinados a ele. Normalmente, estes widgets aparecem dentro da caixa que define o widget raiz.
- Na linguagem C, usando o toolkit GTK+: GTK+/Empacotando widgets
- Em C++, usando o toolkit Qt: Qt/Widgets (ver primeira imagem à direita)
- Em Java, usando o toolkit Java/Swing: Java/Swing/Widgets (ver segunda imagem à direita)
- Em Python, usando o toolkit tkinter, baseado no Tk: Python/Tkinter/Widgets (ver terceira imagem à direita)
Exemplos em outras línguas:
- Na linguagem tcl, usando o toolkit Tk: en:Tcl Programming/Tk
- Em Common Lisp, usando o toolkit Tk: en:Common Lisp/External libraries/Ltk
- Em Python, usando o toolkit Tk: de:Python-Programmierung: Tkinter
- Em Python, usando o toolkit Qt: de:Python unter Linux: Qt4
- Em C++, usando o toolkit wxWidgets: fr:Interfaces graphiques en C++ avec wxWidget/Evenements
- Na linguagem Haskell, usando o toolkit wxWidgets: en:Haskell/GUI
- Na linguagem C, usando o toolkit GTK+: fr:Programmation GTK+/Programme de démonstration des placements
Lista de widgets
[editar | editar código-fonte]Segue uma lista de widgets. Como a maioria das linguagens de programação usam o inglês como língua padrão, os nomes dos widgets estão listados nesta língua.
- Trabalhos com coleções, por seleção e exibição
- Containers (objetos que contém outros objetos)
- Window
- Modal window
- Dialog box
- Palette window, also known as "Utility window"
- Window