A linguagem de programação Python possui o modulo de construção da GUI, o Tkinter que necessita de uma codificação dinâmica para montar a interface gráfica de usuário.
Em nossa configuração da IDE Spyder estavamos executando os scripts Python com saída direta para o terminal Linux, para configurar a IDE Spyder para executar a GUI diretamente quando clicar no botão RUN, entre no menu: Tools, Preferences, Run e escolha a opção, “Execute in a new dedicated Python interpreter”, clique em aplicar e em OK.
Controles Basicos do Tkinter
Tk
Para inicializar Tkinter, temos que criar um widget raiz Tk. Esta é uma janela comum, com uma barra de título e outra decoração fornecido pelo seu gerenciador de janelas. Você só deve criar um widget de raiz para cada programa, e ele deve ser criado antes de quaisquer outros widgets.
Label
O Widget de Label é um widget Tkinter padrão usado para exibir um texto ou a imagem na tela. A etiqueta só pode exibir texto em uma única fonte, mas o texto pode abranger mais de uma linha. Além disso, um dos caracteres podem ser destacados (Underline), por exemplo, para marcar um atalho.
Entry
O Widget de entrada é utilizada para introduzir cadeias de texto. Este widget permite que o usuário insira uma linha de texto, em uma única fonte.
Button
O Widget de botão é um widget Tkinter padrão usado para implementar vários tipos de botões. Os botões podem conter texto ou imagens, e você pode associar uma função Python ou método com cada botão. Quando o botão é pressionado, Tkinter que chama automaticamente a função ou método.
O botão só pode exibir texto em uma única fonte, mas o texto pode abranger mais de uma linha. Além disso, um dos caracteres podem ser destacados, por exemplo, para marcar um atalho de teclado. Por padrão, a tecla Tab pode ser usado para mover-se para um widget de botão
Grid Geometry Manager
Grid Manager é o mais flexível dos gerenciadores de geometria em Tkinter. Se você não quiser saber como e quando usar os três gerentes, pelo menos, certifique-se de aprender este.
O Grid Manager é especialmente conveniente para usar ao projetar caixas de diálogo. Você ficará surpreso com o quanto é fácil usar o gerenciador de grid. Você pode, na maioria dos casos, simplesmente despejar todos os widgets em um único widget de recipiente, e usar o gerenciador de grid para obter todos eles onde quiser.
CallBack
Um botão sem uma chamada de retorno(callback) é bastante inútil, ele simplesmente não faz nada quando você pressiona o botão. O callback delega o evento a um botão fazendo com que ele execute a ação programada pelo desenvolvedor.
Exemplo:
Neste exemplo criamos um pequeno programa visual que concatena duas strings.
Python
#!/usr/bin/env python # -*- coding: latin-1 -*- # Desenvolvimento Aberto # visual.py # importa modulo from Tkinter import * # Cria formulario formulario = Tk() formulario.title = "Desenvolvimento Aberto" # Alimenta variaveis do label r = StringVar() r= "Resultado" # Evento do botão def callback(): r = texto1.get() + texto2.get() resultado = Label(formulario, text = r) resultado.grid(row=4, column=1) # Cria um novo label rotulo = Label(formulario, text = "Concatena Strings") texto1 = Entry(formulario) texto2 = Entry(formulario) botao = Button(formulario, text = "Somar", command = callback) resultado = Label(formulario, text = r) # Adiciona Componentes no Grid rotulo.grid(row=0, column=1) texto1.grid(row=1, column=1) texto2.grid(row=2, column=1) botao.grid(row=3, column=1) resultado.grid(row=4, column=1) # Roda o loop principal do tcl mainloop()