Tcl/Tk
Curso On-Line de Programação

Introdução ao Tk

TK é o Tool Kit, o kit de ferramentas gráficas do Tcl. Com Tk é possível construir rapidamente aplicativos gráficos para UNIX, Windows e MacOS. Para você ter uma idéia de como é rápido e fácil construir aplicativos baseados em janelas, utilizando Tk, veja o exemplo abaixo. Não se preocupe em entender os comandos. Eles serão estudados mais tarde.
 

Alô Mundo

Veja uma implementação do programa "Alô Mundo!" em Tk. Alô mundo é o primeiro programa, que todo programador escreve quando está aprendendo uma linguagem.

button .alomundo -text "Alô Mundo" -command {exit}
pack .alomundo
Pronto! As duas linhas de comando anteriores farão tudo: Criarão um botão em uma janela, configurarão o envento Click do botão e posicionarão o botão na janela.

Experimente: Copie e cole o código acima na linha de comando do interpretador Tcl, o wish.

No exemplo anterior, a primeira palavra, button, é o comando usado para se criar um botão em Tk. Ela indica a classe a que pertence o widget, componente gráfico, que queremos criar. A segunda palavra .alomundo, é o nome do objeto que queremos criar. Observe que o nome do objeto começa com um ponto (.). A terceira palavra -text é o nome de uma propriedade que queremos configurar. A palavra seguinte "Alô Mundo" é o valor da propriedade que estamos configurando. A quinta palavra -command, é também uma propriedade, que indica ao Tk a ação que deve ser executada quando o botão for pressionado. Neste caso a ação será sair do programa: exit.

Uma vez que um widget seja criado, será criado também um comando, com o mesmo nome do widget, que permitirá acessar as propriedades do widget.
 

Determinando os nomes dos widgets

Em Tk os widgets são agrupados em uma hierarquia, como uma árvore de diretórios. Onde cada nível é separado por um ponto (.). O nome do nível mais alto, e que corresponde á primeira janela, criada automaticamente quando o interpretador Tcl é iniciado é ponto (.). Assim um widget inserido na janela principal se chamará .nome_do_widget. Na maioria dos casos, teremos os widgets arrumados no interior de molduras, que por sua vez estarão no interior de alguma janela. Assim, o nome de um widget nesta condição seria: .nome_da_janela.nome_da_moldura.nome_do_widget.
 

Opções

Em Tk as propriedades de um widget são chamadas de opções. Para ler uma opção de um widget utilizamos o sub-comando cget, do widget cuja opção queremos ler. Assim em nosso exemplo "Alô Mundo", para ler-mos o valor da opção text faríamos o seguinte:

puts [.alomundo cget -text]
O comando acima exibirá no console Tcl o texto "Alô Mundo".

Para configurar uma opção de um widget utilizamos o sub-comando configure, do widget cuja opção queremos configurar. Assim em nosso exemplo "Alô Mundo", para configurar-mos o valor da opção text faríamos o seguinte:

.alomundo configure -text "OK"
puts [.alomundo cget -text]
O comando acima exibirá no console Tcl o texto "OK".

Observe que o texto no botão, mudou imediatamente de "Alô Mundo" para "OK".

Cada widget Tk possui um número enorme de opções. A seguir são apresentadas as principais opções suportadas pelos widgets Tk.

Observe que muitas delas não são suportadas por todos os widgets, enquanto que outros widgets suportarão outras opções que não são apresentadas aqui, e serão vistas mais adiante.
 

Opção Descrição
-activebackground Cor de fundo quando o widget está ativo.
-activeborderwidth Largura da borda quando o widget está ativo.
-activeforeground Cor do primeiro plano quando o widget está ativo.
-anchor Referência para posicionamento do widget: n, ne, e, se, s, sw, w, nw e center.
-background Cor de fundo.
-bitmap Bitmap para exibir no widget: error, gray12, gray25, gray50, gray75, hourglass, info, questhead, question, warning ou @nome_do_arquivo.
-borderwidth Largura da borda.
-command Comando a ser executado quando o evento default do widget ocorrer.
-cursor Cursor do mouse. O nome do cursor depende do sistema operacional. No UNIX veja o arquivo /usr/include/X11/cursorfont.h. Também pode ser o nome de um arquivo: @nome_do_arquivocor_de_fundo. Onde cor_de_fundo indica a cor transparente.
-disabledforeground Cor de fundo quando o widget está desabilitado.
-exportselection Indica se uma seleção em um widget irá para o clipboard externo ou não. 1 - Exportar, 0 - Não exportar. Tk possui seu próprio clipboard.
-font Nome e atributos da fonte em uma lista.
-foreground Cor de primeiro plano.
-height Altura do widget.
-hilightbackground Cor do retângulo em volta do widget quando ele não detém o foco.
-hilightcolor Cor do retângulo em volta do widget quando ele detém o foco.
-hilightthickness Largura do retângulo em volta do widget quando ele detém o foco.
-image Imagem a ser exibida no widget. Nome da imagem obtida com o comando image.
-insertbackground Cor de fundo da área do cursor no modo inserir.
-insertborderwidth Largura da área do cursor no modo inserir.
-insertofftime Tempo em que o cursor deve permanecer desativado enquanto ele pisca no modo inserir.
-insertontime Tempo em que o cursor deve permanecer ativado enquanto ele pisca no modo inserir.
-insertwidth Largura do cursor no modo inserir.
-jump Informa às scrollbars e escalas conectadas ao widget para atrasarem a atualização até o botão do mouse ser liberado.
-justify Alinhamento do texto: left, center, right.
-orient Orientação: horizontal, vertical.
-padx Espaçamento horizontal.
-pady Espaçamento vertical.
-relief Efeito 3D da borda do widget: flat, groove, raised, ridge, sunken.
-repeatdelay Tempo necessário para iniciar a auto-repetição ao se manter pressionado um botão ou tecla.
-repeatinterval Tempo entre as auto-repetições.
-selectbackground Cor de fundo dos ítens selecionados.
-selectborderwidth Largura da borda ao redor dos ítens selecionados.
-selectforeground Cor do primeiro plano dos ítens selecionados.
-setgrid Indica se o widget deve controlar a grade de redimensionamento para a janela onde ele está inserido.
-state Estado: normal, disabled, active.
-takefocus Indica se o widget deve sempre ou nunca receber o foco. Se vazio, isso será decido pelo Tk.
-text Texto a ser exibido no widget.
-textvariable Variável que contém o texto que deve ser exibido no widget. O widget será atualizado sempre que o valor da variável mudar, e o valor da variável mudará caso o texto no widget mude.
-troughcolor Cor da área de deslizamento das scrollbars. Não funciona no Windows.
-underline Posição do caractere sublinhado no texto do widget. Usado em menus e botões para indicar a tecla de atalho. Se -1, Nenhum caractere será sublinhado.
-width Largura do widget.
-wraplength Largura da área coberta pela linha de texto para que ocorra uma quebra automática de linha.
-xscrollcommand Comando usado para comunicação com a scrollbar horizontal.
-yscrollcommand Comando usado para comunicação com a scrollbar vertical.

Para uma descrição detalhada de todos os comandos disponíveis em Tk, consulte a documentação on-line, ou o Tcl/Tk Reference Guide, ou ainda o Tcl/Tk Electronic Reference.

Para maiores informações envie e-mail para info@souzamonteiro.com.


http://www.souzamonteiro.com
info@souzamonteiro.com

Copyright(C) 2000 by Roberto Luiz Souza Monteiro