|
Fig.12 - Muitos diálogos úteis já são encontrados prontos para serem usados, ou
podem ser criados facilmente pelo programador, como estes aqui do programa
SlideDraw.
|
O curso será eminentemente prático, com uma parte expositiva demonstrando a
utilização das ferramentas para a produção de interfaces e explicação das
particularidades do tcl. Cerca de metade do tempo será dedicado à construção de
aplicações simplificadas pelos próprios participantes, sob a coordenação do
instrutor. Isso é possível graças à simplicidade da sintaxe do tcl e à
compactação conseguida pelo seu código. Estudos mostram que o tcl ganha em
produtividade com um fator de aproximadamente dez vezes, se comparado a
liguagens como pascal e C/C++.
|
|
Fig.13 - Widget para seleção de texturas.
|
Entre os tópicos principais cobertos pelo curso, teremos:
- Aplicações com interfaces gráficas: editores visuais
- A linguagem tcl
- Listas e vetores
- Gerenciadores de geometrica: pack, place, grid
- Eventos e ligações (bindings)
- Criando objetos em tcl, namespaces
- Arquiteturas cliente/servidor
- Integração com um DBMS SQL
|
|
Fig.14 - Painel principal do Visual Tcl.
|
|
Fig.15 - Gráficos com o extensão BLT
|
Daremos uma ênfase maior na construção e emprego dos diversos widgets, tanto
nas bibliotecas padrões do tcl/tk quanto nas suas extensões. Com um bom
arsenal de widgets, a escrita de aplicações torna-se mais um problema de
design do que propriamente de codificação ou algorítmos sofisticados,
exceto em raros casos.
Utilizaremos também programas já existentes, mas sem nenhuma GUI, para
transformá-los em algo mais palatável, fácil de ser usado. Para isso não é
necessário nem mesmo entender a implementação da aplicação original.
|
|
Fig.16 - Seletor de cores.
|
Mostraremos também como podem ser construidos novos widgets inteiramente em
tcl, sem a necessidade de se voltar para a API de baixo nível (C/C++). Além de
widgets adicionais, novos gerenciadores de geometria, por exemplo um
pane, podem ser criados inteiramente em forma de scripts, e fica
tão veloz que jamais um usuário perceberá que não se trata de um objeto
compilado.
|
Fig.17 - Um widget em forma de calendário.
|
|