123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- from PyQt5 import QtWidgets
- from PyQt5.QtWidgets import QMessageBox
- from aylinuxhp import Ui_MainWindow
- class Aylinuxhp(QtWidgets.QMainWindow,Ui_MainWindow):
- ilksayi=None
- ikincisayi=False
- def __init__(self):
- super().__init__()
- self.setupUi(self)
- self.show()
-
- # rakam butonu işlemleri
- self.buton0.clicked.connect(self.rakama_bas)
- self.buton1.clicked.connect(self.rakama_bas)
- self.buton2.clicked.connect(self.rakama_bas)
- self.buton3.clicked.connect(self.rakama_bas)
- self.buton4.clicked.connect(self.rakama_bas)
- self.buton5.clicked.connect(self.rakama_bas)
- self.buton6.clicked.connect(self.rakama_bas)
- self.buton7.clicked.connect(self.rakama_bas)
- self.buton8.clicked.connect(self.rakama_bas)
- self.buton9.clicked.connect(self.rakama_bas)
- self.ikisifir.clicked.connect(self.rakama_bas)
- self.ucsifir.clicked.connect(self.rakama_bas)
- self.pi.clicked.connect(self.pi_bas)
- # nokta butonu işlemleri
- self.nokta.clicked.connect(self.nokta_bas)
- # artı/eksi, yüzde, karekök butonu işlemleri
- self.eksiarti.clicked.connect(self.yuzde_artieksi)
- # self.yuzde.clicked.connect(self.yuzde_artieksi)
- self.karekok.clicked.connect(self.yuzde_artieksi)
- # işlem butonu işlemleri
- self.topla.clicked.connect(self.islemler)
- self.cikar.clicked.connect(self.islemler)
- self.bolme.clicked.connect(self.islemler)
- self.carp.clicked.connect(self.islemler)
- self.kuvvet.clicked.connect(self.islemler)
- self.yuzde.clicked.connect(self.islemler)
-
- self.topla.setCheckable(True)
- self.cikar.setCheckable(True)
- self.bolme.setCheckable(True)
- self.carp.setCheckable(True)
- self.kuvvet.setCheckable(True)
- self.yuzde.setCheckable(True)
- # eşittir butonu işlemleri
- self.esittir.clicked.connect(self.islemsonuc)
- self.esittir.setCheckable(True)
- # C butonu işlemleri
- self.butonc.clicked.connect(self.temizle)
- # Silme <= butonu işlemleri
- self.geri.clicked.connect(self.gerigit)
- # Bilgi butonu işlemleri
- self.bilgi.clicked.connect(self.bilgiver)
- def rakama_bas(self):
- buton = self.sender()
- if ((self.ikincisayi) and (self.esittir.isChecked())):
- self.sonuc.setText(format(float(buton.text()),'.15g'))
- self.ikincisayi = True
- self.esittir.setChecked(False)
- elif ((self.topla.isChecked() or self.cikar.isChecked() or self.yuzde.isChecked() or self.kuvvet.isChecked() or self.bolme.isChecked() or self.carp.isChecked()) and (not self.ikincisayi)):
- self.sonuc.setText(format(float(buton.text()),'.15g'))
- self.ikincisayi = True
- else:
- if (('.' in self.sonuc.text()) and buton.text()== "0"):
- self.sonuc.setText(format(float(self.sonuc.text() + buton.text()),'.15'))
- else:
- self.sonuc.setText(format(float(self.sonuc.text() + buton.text()),'.15g'))
- def nokta_bas(self):
- # nokta varsa artık basma
- if ('.' in self.sonuc.text()):
- self.sonuc.setText(self.sonuc.text())
- else:
- self.sonuc.setText(self.sonuc.text()+".")
- def yuzde_artieksi(self):
- buton = self.sender()
- deger = float(self.sonuc.text())
- if buton.text()=="-/+":
- deger=deger * -1
- elif buton.text()=="√¯":
- deger=deger ** 0.5
- else:
- deger=deger * 0.01
- self.sonuc.setText(format(deger,'.15g'))
- def islemler(self):
- buton = self.sender()
- self.ilksayi = float(self.sonuc.text())
- self.bolme.setChecked(False)
- self.topla.setChecked(False)
- self.cikar.setChecked(False)
- self.kuvvet.setChecked(False)
- self.yuzde.setChecked(False)
- self.carp.setChecked(False)
- buton.setChecked(True)
- def islemsonuc(self):
- yenideger=""
- if self.esittir.isChecked()== True or yenideger=="" :
- if self.ilksayi == None or self.esittir.isChecked()== False :
- buton = self.sender()
- buton.setChecked(False)
- ikincideger = float(self.sonuc.text())
- else:
- ikincideger = float(self.sonuc.text())
- if self.topla.isChecked():
- yenideger = self.ilksayi + ikincideger
- self.sonuc.setText(format(yenideger, '.15g'))
- self.topla.setChecked(False)
- elif self.carp.isChecked():
- yenideger = self.ilksayi * ikincideger
- self.sonuc.setText(format(yenideger, '.15g'))
- self.carp.setChecked(False)
- elif self.cikar.isChecked():
- yenideger = self.ilksayi - ikincideger
- self.sonuc.setText(format(yenideger, '.15g'))
- self.cikar.setChecked(False)
- elif self.bolme.isChecked():
- try:
- yenideger = self.ilksayi / ikincideger
- self.sonuc.setText(format(yenideger, '.15g'))
- self.bolme.setChecked(False)
- except ZeroDivisionError:
- print("Bir sayıyı 0'a bölemezsiniz!")
- elif self.kuvvet.isChecked():
- yenideger = self.ilksayi ** ikincideger
- self.sonuc.setText(format(yenideger, '.15g'))
- self.kuvvet.setChecked(False)
- elif self.yuzde.isChecked():
- yenideger = self.ilksayi * ikincideger / 100
- self.sonuc.setText(format(yenideger, '.15g'))
- self.yuzde.setChecked(False)
- if ikincideger != 0.0:
- if ikincideger == 0 :
- self.msgBox = QMessageBox(self)
- self.msgBox.setWindowTitle("Aylinux Hesap Makinesi")
- self.msgBox.setIcon(QMessageBox.Warning)
- self.msgBox.addButton("Tamam", QMessageBox.ActionRole)
- self.msgBox.setText("Bir sayıyı 0'a bölemezsiniz! \nLütfen bölmek istediğiniz sayıyı tekrar girin.")
- self.msgBox.show()
- else:
- self.ilksayi = yenideger
- self.esittir.setChecked(True)
- else:
- print("İşlem yapmak için önce sayı girmelisiniz! \nLütfen bir sayı girin.")
- else:
- print("İşlem yapmak için önce sayı girmelisiniz! \nLütfen bir sayı girin.")
- def temizle(self):
- self.ilksayi = 0
- self.ikincisayi = False
- self.sonuc.setText("0")
- self.bolme.setChecked(False)
- self.topla.setChecked(False)
- self.cikar.setChecked(False)
- self.kuvvet.setChecked(False)
- self.yuzde.setChecked(False)
- self.carp.setChecked(False)
- self.esittir.setChecked(False)
- def gerigit(self):
- if len(self.sonuc.text()) != 1:
- self.sonuc.setText(self.sonuc.text()[0:-1]) # Son girilen rakamı siler
- print(len(self.sonuc.text()))
- else:
- self.sonuc.setText("0")
- def pi_bas(self):
- self.sonuc.setText("3.14")
- def bilgiver(self):
- self.msgBox = QMessageBox(self)
- self.msgBox.setWindowTitle("Aylinux Hesap Makinesi")
- self.msgBox.setIcon(QMessageBox.Warning)
- self.msgBox.addButton("Tamam", QMessageBox.ActionRole)
- self.msgBox.setText("Aylinux Hesap Makinesi v0.1 \n\nBu uygulama Aylinux için Cihan Alkan tarafından hazırlanmıştır.")
- self.msgBox.show()
|