Python Tkinter Fahrenheit Celsius Dönüşümü

Python Tkinter Fahrenheit Celsius Dönüşümü

Bu örneğimizde Fahrenheit ile Celsius arasında dönüşüm gerçekleştireceğiz. Kullanıcı Fahrenheit değere girerse bu değeri Celsius a çevirecek. Eğer Celsius değer girerse bu değeri ise Fahrenheit değere çevirecektir. Öncelikle programın ara yüzüne bir bakalım.

Python Tkinter Fahrenheit Celsius Dönüşümü

2 adet Entry Box aracına kullanıcı giriş yapacaktır. Hangisine giriş yaparsa Hesapla düğmesine bastığında diğer değeri otomatik hesaplayıp bulacağız. Şimdi gelelim kod yapısına.

import tkinter as tk
import math
pencere=tk.Tk()
pencere.title("Fah- Celc Hesaplama")
pencere.geometry("400x300")

def hesapla():
    bilgi1 = ent1.get()
    bilgi2 = ent2.get()

    if bilgi1 =="" and bilgi2!="":
        e3.config(text="")
        fah = (int(bilgi2)*1.8)+32
        ent1.insert(tk.END,fah)

    elif bilgi1!="" and bilgi2=="":
        e3.config(text="")
        celc = (int(bilgi1)-32)/1.8
        ent2.insert(tk.END,celc)

    elif bilgi1=="" and bilgi2=="":
        e3.config(text="")
        e3.config(text="İki Alanda Boş Bırakılamaz...")

    elif bilgi1!="" and bilgi2!="":
        e3.config(text="")
        e3.config(text="İki Alanda Dolu  olamaz...")


def temizle():
    ent1.delete(0,tk.END)
    ent2.delete(0,tk.END)





e1 = tk.Label(text = "Fahrenheit : ")
e1.place(x=10,y=10)

e2 = tk.Label(text = "Celsius  : ")
e2.place(x=10,y=50)

ent1 = tk.Entry()
ent1.place(x=120, y=10)

ent2 = tk.Entry()
ent2.place(x=120, y=50)

btn = tk.Button(text = "HESAPLA", command = hesapla)
btn.place(x="10",y=100)

btn2 = tk.Button(text = "TEMİZLE", command = temizle)
btn2.place(x="100",y=100)

e3 = tk.Label(text= "---------")
e3.place(x=10,y=150)


pencere.mainloop()

Ara yüzde 2 adet buton mevcuttur. Bu butonlar HESAPLA ve TEMİZLE butonları dır. Temizle butonuna basıldığında “temizle” isimli fonksiyon çalışacak ve Entry Box içerisindeki bilgiler silinecektir. Hesapla butonuna basılınca ise “hesapla” fonksiyonu çalışacaktır.

def hesapla():
    bilgi1 = ent1.get()
    bilgi2 = ent2.get()

    if bilgi1 =="" and bilgi2!="":
        e3.config(text="")
        fah = (int(bilgi2)*1.8)+32
        ent1.insert(tk.END,fah)

    elif bilgi1!="" and bilgi2=="":
        e3.config(text="")
        celc = (int(bilgi1)-32)/1.8
        ent2.insert(tk.END,celc)

    elif bilgi1=="" and bilgi2=="":
        e3.config(text="")
        e3.config(text="İki Alanda Boş Bırakılamaz...")

    elif bilgi1!="" and bilgi2!="":
        e3.config(text="")
        e3.config(text="İki Alanda Dolu  olamaz...")

İlk yapacağımız iş elbette ent1 ve ent2 isimli Entry Box araçlarında bilgileri almaktır. Bu aldığımız bilgilere göre 4 adet sorgu oluşturdum. Bu sorgular:

1- bilgi1 değişkeni boş, bilgi2 değişkeni dolu
2- bilgi1 değişkeni dolu, bilgi2 değişkeni boş
3- iki değişkende boş
4- iki değişkende dolu

Bu sorgulamalara göre işlemlerimi gerçekleştireceğim.

Öncelikle 3 ve 4 numaralı sorgularda programın uyarı vermesi lazım.

e3.config(text="İki Alanda Boş Bırakılamaz...")

e3.config(text="İki Alanda Dolu  olamaz...")

kodları ile bu uyarıları e3 etiketinde belirtiyoruz.

1 numaralı koşulda bilgi1 değişkeni boş girilmiştir. Bu kapsamda aşağıdaki kodlar çalışmaktadır.

   if bilgi1 =="" and bilgi2!="":
        e3.config(text="")
        fah = (int(bilgi2)*1.8)+32
        ent1.insert(tk.END,fah)

Celcius dan Fahrenheith e çeviri yapmamız gerekiyor. (C x 1.8) +3.2 formülü ile hesaplamayı yaparız. Hemen ardından bu değeri ent1. insert ile ent1 isimli Entry Box aracına ekleriz.

2 numaralı koşulda bilgi2 değişkeni boş girilmiştir. Bu kapsamda aşağıdaki kodlar çalışmaktadır.

elif bilgi1!="" and bilgi2=="":
        e3.config(text="")
        celc = (int(bilgi1)-32)/1.8
        ent2.insert(tk.END,celc)

Fahrenheith dan Celcius a çeviri yapmamız gerekiyor. (F-32) / 1.8 formülü ile hesaplamayı yaparız. Hemen ardından bu değeri ent2. insert ile ent2 isimli Entry Box aracına ekleriz.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir