python hesap makinesi (versiyon 2)

python 3.7 ile hesap makinesi yapmaya devam ediyoruz. Bir önceki denememizde hesap makinemizi basit bir şekilde yapmıştık. Şimdi hesap makinemizi biraz daha geliştirelim.

evet ilk önce qt designerde şablonumuzu hazırlıyoruz.

buradan widget secip alttan creat a basıyoruz ve karşımıza boş bir form geliyor. Bu form ekranına hesap makinesinde kullanmak için form elemanlarını sol taraftaki menüden ekliyoruz.

17 adet pushbutton ekleyip isimlerini görseldeki gibi yapıyoruz. Bir tane lineEdit ekliyoruz.
eklediğimiz pushbutonların ve lineedittin ismini sağ taraftaki özellikler menüsünden karışıklılık olmaması adıyla kendimize göre isimler veriyoruz.
Şimdi sıra ise eklediğimiz form elemanlarını aktif hale getiriyoruz. Bunun için edit menüsünden edit signals/slot (F4) seceneğine tıklayarak yapıyoruz.

daha sonra pushbutonlara ctrl basılı iken butonların tam üstüne çift tıklıyoruz ve açılan ekrandan sol tarafdan pressed sağ tarafdan ise close u seçiyoruz.

yaptığımız işlem butonlara basılınca kapatsın haline geldi. Biz bunu python programında kodlar ile düzelteceğiz.
şimdi ise dosyamızı kaydediyoruz. Qt Designer ile yaptığımız dosyamızın uzantısı ui ve python programı ui dosyalarını tanımaz. Biz bu ui uzantılı dosyaları py uzantılı dosya haline getireceğiz. Başlattan komut satırını açarak ui dosyalarımızı py dosyalarına çevirme komutumuzu yazıyoruz. Komutumuz şu şekilde:Pyuic5.bat isimli dosyanın olduğu yere gidiyoruz. benim bilgisayarda bu yere gitmek için cd ProgramData\Anaconda3\Library\bin yazıyoruz ve sonrasında ise
pyuic5.bat -x uidosyayeri\uidosyasiadi -o pydosyanınkaydedileceğiyer\pydosyaismi
yazarak dosyamızı python dosyası haline çeviriyoruz.

şimdi ise dosyamızı python programı ile açıyoruz.
classımızın altına şu fonksiyon tanımlamalarını ekliyoruz.
islem=sayi1=sayi2=0
def ekle(self,sayi):
if (sayi==”0″):
if (self.lineekran.text()!=0):
self.lineekran.setText(self.lineekran.text()+”0″)
else:
self.lineekran.setText(self.lineekran.text()+str(sayi))
def temizle(self):
self.lineekran.setText(“”)

def hsp(self):
self.sayi1=int(self.lineekran.text())
self.lineekran.setText(“”)
def topla(self):
self.islem=1
self.hsp()
def cikarma(self):
self.islem=2
self.hsp()
def carpma(self):
self.islem=3
self.hsp()
def bolme(self):
self.islem=4
self.hsp()
def cikis(self):
sys.exit()
def kare(self):
self.islem==5
self.hsp()
def esittir(self):
if (self.lineekran.text()!=””):
self.sayi2=int(self.lineekran.text())

if (self.islem==1):
self.lineekran.setText(str(self.sayi1+self.sayi2))
if (self.islem==2):
self.lineekran.setText(str(self.sayi1-self.sayi2))
if (self.islem==3):
self.lineekran.setText(str(self.sayi1*self.sayi2))
if (self.islem==4):
self.lineekran.setText(str(self.sayi1/self.sayi2))

self.islem=self.sayi1=self.sayi2=0

tabi pythonda boşluk ve hizalamalarına dikkat ediyoruz.

Şimdi ise butonların yönlendirmelerini değiştiriyoruz. Qt Designerde pressed ve close seçmiştik.

ilk hali böyle…

değiştirmiş halimiz ise;
şeklindedir.

butonlarımıda doğru yönlendirmelerini yaptıkdan sonra artık programımızı deneyebiliriz.
shift+f10 ile test ediyoruz….

kodlarımızın tamamı şu şekilde
hesapmakinesitext

çalıştırılabilir exe halini indirmek için tıklayınız>>>>hesap makinesi versiyon 2

Administrator hakkında 234 makale
Bilişim Teknolojileri Öğretmeni

İlk yorum yapan olun

Bir yanıt bırakın

E-posta hesabınız yayımlanmayacak.


*