Visual – Controles – Tk, Label, Entry, Grid Geometry e Callback – Python – Linux

Publicado: 8 de março de 2014 em Python

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()
Publicidade

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s