sexta-feira, 2 de janeiro de 2015

Interface - parte III

Imagine que você tenha de fazer um programa que converta a temperatura de Celsius para Fahrenheit, a primeira coisa que pensamos é que o usuário deverá introduzir um valor e o programa converte e apresenta o resultado.

Com uma pesquisa básica você descobre a fórmula para essa conversão.

C/5= (F -32)/9

Basicamente é simples. E o código usando uma função seria assim:

def mudanca(x):
    F = x*9/5 + 32
    print "o valor em Fahrenheit e " + str(F)


O usuário chamará a função com o valor correto e terá o resultado


Essa é a janela normal de execução em Python. E temos o resultado.
Mas, imagine que você queira fazer uma interface gráfica =].
Utilizando o Tkinter isso é simples. a diferença agora é que temos de receber o resultado de uma caixa de texto e converte-lo ao clicar em um botão.



Essa é a ideia. O que será acrescentado nessa código é a caixa de texto e o evento que irá armazenar o valor da mesma ao clique do botão.

from Tkinter import *
#funcao que converte a temperatura
def mudanca():
    temp = temperatura.get()
    #convertendo
    F = temp*9/5 + 32
    #colocando o resultado em uma Label
    mTemperatura.configure(text="A temperatura em Fahreight e : " + str(F))


mJanela = Tk()
#valor que será armazenado da caixa de texto
temperatura = IntVar()
mJanela.geometry("250x200")
mJanela.title("Temperatura")
mlabel = Label(text = 'Digite a temperatura em Celcius:').pack()
#caixa de texto
mTexto_entry = Entry(mJanela,textvariable = temperatura).pack()
#Botao
mButao =  Button(text = "Calcular", command = mudanca).pack()
#label sem texto
mTemperatura = Label(text = "")
mTemperatura.pack()
mJanela.mainloop()

Simples até. A caixa de texto recebe o valor pelo usuário e o armazena ao clicar no botão na variável temperatura. A função mudanca() é chamada e faz todo o processo.

O interessante do código é o fato de atualizar o valor da Label.


 mTemperatura.configure(text="A temperatura em Fahreight e : " + str(F))

Bom é isso ai.

Nenhum comentário:

Postar um comentário