PyQT5 ile Yapilmis Hesap Makinesi

Belki sizin için çok çok basit bir projedir ancak benim için çok emek isteyen bir proje oldu.
Yaparken de çok keyif aldım. Belki hesap makinesi kullanmak istediğiniz zaman google’a değil de bu hesap makinesine gidersiniz :smiley:

Projeyi incelemeniz için aşağıya kodlarını yazacağım. Ancak indirmek isterseniz lütfen buradan
indirin —> ** https://www.dosya.tc/server31/wguvu1/hesapmakInesi.rar.html

İndirdikten sonra ve kullanmaya başlamanızdan sonra isterseniz exe’ye çevirirsiniz.

Buradan incelemek istersiniz diye kodları veriyorum şimdi.

“”"""""""""""
Designer Kodları :

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'h_arayüz.ui'
#
# Created by: PyQt5 UI code generator 5.15.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class HesapMakinesi(object):
    def setupUi(self, HesapMakinesi):
        HesapMakinesi.setObjectName("Hesap Makinesi")
        HesapMakinesi.resize(417, 465)
        self.pushButton = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton.setGeometry(QtCore.QRect(10, 170, 91, 71))
        self.pushButton.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_2.setGeometry(QtCore.QRect(100, 170, 91, 71))
        self.pushButton_2.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton_3 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_3.setGeometry(QtCore.QRect(190, 170, 91, 71))
        self.pushButton_3.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_3.setObjectName("pushButton_3")
        self.pushButton_4 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_4.setGeometry(QtCore.QRect(10, 240, 91, 71))
        self.pushButton_4.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_4.setObjectName("pushButton_4")
        self.pushButton_5 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_5.setGeometry(QtCore.QRect(100, 240, 91, 71))
        self.pushButton_5.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_5.setObjectName("pushButton_5")
        self.pushButton_6 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_6.setGeometry(QtCore.QRect(190, 240, 91, 71))
        self.pushButton_6.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_6.setObjectName("pushButton_6")
        self.pushButton_7 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_7.setGeometry(QtCore.QRect(10, 310, 91, 71))
        self.pushButton_7.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_7.setObjectName("pushButton_7")
        self.pushButton_8 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_8.setGeometry(QtCore.QRect(100, 310, 91, 71))
        self.pushButton_8.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_8.setObjectName("pushButton_8")
        self.pushButton_9 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_9.setGeometry(QtCore.QRect(190, 310, 91, 71))
        self.pushButton_9.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_9.setObjectName("pushButton_9")
        self.pushButton_10 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_10.setGeometry(QtCore.QRect(10, 380, 91, 71))
        self.pushButton_10.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_10.setObjectName("pushButton_10")
        self.pushButton_11 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_11.setGeometry(QtCore.QRect(190, 130, 91, 41))
        self.pushButton_11.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_11.setObjectName("pushButton_11")
        self.pushButton_12 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_12.setGeometry(QtCore.QRect(100, 380, 181, 71))
        self.pushButton_12.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_12.setObjectName("pushButton_12")
        self.pushButton_13 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_13.setGeometry(QtCore.QRect(280, 130, 91, 41))
        self.pushButton_13.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_13.setObjectName("pushButton_13")
        self.pushButton_14 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_14.setGeometry(QtCore.QRect(10, 130, 91, 41))
        self.pushButton_14.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_14.setObjectName("pushButton_14")
        self.pushButton_15 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_15.setGeometry(QtCore.QRect(100, 130, 91, 41))
        self.pushButton_15.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_15.setObjectName("pushButton_15")
        self.pushButton_16 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_16.setGeometry(QtCore.QRect(370, 130, 41, 41))
        self.pushButton_16.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_16.setObjectName("pushButton_16")
        self.pushButton_17 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_17.setGeometry(QtCore.QRect(280, 310, 131, 71))
        self.pushButton_17.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_17.setObjectName("pushButton_17")
        self.pushButton_18 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_18.setGeometry(QtCore.QRect(280, 170, 131, 71))
        self.pushButton_18.setStyleSheet("font: 75 20pt \"MS Shell Dlg 2\";")
        self.pushButton_18.setObjectName("pushButton_18")
        self.lineEdit = QtWidgets.QLineEdit(HesapMakinesi)
        self.lineEdit.setGeometry(QtCore.QRect(10, 10, 391, 71))
        self.lineEdit.setStyleSheet("font: 75 18pt \"MS Shell Dlg 2\";")
        self.lineEdit.setObjectName("lineEdit")
        self.pushButton_19 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_19.setGeometry(QtCore.QRect(280, 240, 131, 71))
        self.pushButton_19.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_19.setObjectName("pushButton_19")
        self.label = QtWidgets.QLabel(HesapMakinesi)
        self.label.setGeometry(QtCore.QRect(10, 110, 71, 16))
        self.label.setObjectName("label")
        self.pushButton_20 = QtWidgets.QPushButton(HesapMakinesi)
        self.pushButton_20.setGeometry(QtCore.QRect(280, 380, 131, 71))
        self.pushButton_20.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\";")
        self.pushButton_20.setObjectName("pushButton_20")
        
        self.label_2 = QtWidgets.QLabel(HesapMakinesi)
        self.label_2.setGeometry(QtCore.QRect(90, 110, 281, 16))
        self.label_2.setText("")
        self.label_2.setObjectName("label_2")

        self.retranslateUi(HesapMakinesi)
        
        QtCore.QMetaObject.connectSlotsByName(HesapMakinesi)

    def retranslateUi(self, HesapMakinesi):
        _translate = QtCore.QCoreApplication.translate
        HesapMakinesi.setWindowTitle(_translate("HesapMakinesi", "Form"))
        self.pushButton.setText(_translate("HesapMakinesi", "1"))
        self.pushButton_2.setText(_translate("HesapMakinesi", "2"))
        self.pushButton_3.setText(_translate("HesapMakinesi", "3"))
        self.pushButton_4.setText(_translate("HesapMakinesi", "4"))
        self.pushButton_5.setText(_translate("HesapMakinesi", "5"))
        self.pushButton_6.setText(_translate("HesapMakinesi", "6"))
        self.pushButton_7.setText(_translate("HesapMakinesi", "7"))
        self.pushButton_8.setText(_translate("HesapMakinesi", "8"))
        self.pushButton_9.setText(_translate("HesapMakinesi", "9"))
        self.pushButton_10.setText(_translate("HesapMakinesi", "0"))
        self.pushButton_11.setText(_translate("HesapMakinesi", "x"))
        self.pushButton_12.setText(_translate("HesapMakinesi", "C"))
        self.pushButton_13.setText(_translate("HesapMakinesi", "/"))
        self.pushButton_14.setText(_translate("HesapMakinesi", "+"))
        self.pushButton_15.setText(_translate("HesapMakinesi", "-"))
        self.pushButton_16.setText(_translate("HesapMakinesi", "**"))
        self.pushButton_17.setText(_translate("HesapMakinesi", "S**"))
        self.pushButton_18.setText(_translate("HesapMakinesi", "="))
        self.pushButton_19.setText(_translate("HesapMakinesi", "DEL"))
        self.label.setText(_translate("HesapMakinesi", "En Son Sonuç :"))
        self.pushButton_20.setText(_translate("HesapMakinesi", "√¯"))
        
        


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    HesapMakinesi = QtWidgets.QWidget()
    ui = HesapMakinesi()
    ui.setupUi(HesapMakinesi)
    HesapMakinesi.show()
    sys.exit(app.exec_())

“”""""""""""""""

Hesap Makinesi Yapılandırma kodları :


from PyQt5.QtWidgets import *
import sys
import Hesap_Makinesi
import math
from PyQt5.QtGui import *
from PyQt5.QtCore import *







class Pencere(QMainWindow, Hesap_Makinesi.HesapMakinesi):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.timer = QTimer()
        
        self.pushButton.clicked.connect(self.click1)
        self.pushButton_2.clicked.connect(self.click2)
        self.pushButton_3.clicked.connect(self.click3)
        self.pushButton_4.clicked.connect(self.click4)
        self.pushButton_5.clicked.connect(self.click5)
        self.pushButton_6.clicked.connect(self.click6)
        self.pushButton_7.clicked.connect(self.click7)
        self.pushButton_8.clicked.connect(self.click8)
        self.pushButton_9.clicked.connect(self.click9)
        self.pushButton_10.clicked.connect(self.click10)
        self.pushButton_12.clicked.connect(self.click11)
        self.pushButton_17.clicked.connect(self.click12)
        self.pushButton_14.clicked.connect(self.click13)
        self.pushButton_15.clicked.connect(self.click14)
        self.pushButton_11.clicked.connect(self.click15)
        self.pushButton_13.clicked.connect(self.click16)
        self.pushButton_16.clicked.connect(self.click17)
        self.pushButton_16.setContextMenuPolicy(Qt.CustomContextMenu)
        self.pushButton_16.customContextMenuRequested.connect(self.handle_right_click)
        
        
        
        
        

        self.pushButton_18.clicked.connect(self.clicklast)
        self.pushButton_19.clicked.connect(self.delete)
        self.pushButton_20.clicked.connect(self.karekok)
        
        
        
            

        
        
    

    def click1(self):
        
        yazi = self.lineEdit.text() + "1"
        self.lineEdit.setText(yazi)

    def click2(self):
        yazi = self.lineEdit.text() + "2"
        self.lineEdit.setText(yazi)

    def click3(self):
        yazi = self.lineEdit.text() + "3"
        self.lineEdit.setText(yazi)

    def click4(self):
        yazi = self.lineEdit.text() + "4"
        self.lineEdit.setText(yazi)

    def click5(self):
        yazi = self.lineEdit.text() + "5"
        self.lineEdit.setText(yazi)

    def click6(self):
        yazi = self.lineEdit.text() + "6"
        self.lineEdit.setText(yazi)

    def click7(self):
        yazi = self.lineEdit.text() + "7"
        self.lineEdit.setText(yazi)
    
    def click8(self):
        yazi = self.lineEdit.text() + "8"
        self.lineEdit.setText(yazi)

    def click9(self):
        yazi = self.lineEdit.text() + "9"
        self.lineEdit.setText(yazi)

    def click10(self):
        yazi = self.lineEdit.text() + "0"
        self.lineEdit.setText(yazi)

    def click11(self):
        self.lineEdit.clear()

    def click12(self):
        superscript = {
    "0": "\u2070",
    "1": "\u00b9",
    "2": "\u00b2",
    "3": "\u00b3",
    "4": "\u2074",
    "5": "\u2075",
    "6": "\u2076",
    "7": "\u2077",
    "8": "\u2078",
    "9": "\u2079"
}


        def get_superscript(x):
            return "".join(superscript[i] for i in str(x))
    

        def exponential_expression(x):
            count = 2
            while (y := math.log(x, count)) != int(y):
                count += 1
            return f"{count}{get_superscript(int(y))}"
        
        try:
            
            d = self.lineEdit.text()
            self.lineEdit.setText(exponential_expression(x=int(d)))
            
        except ValueError:
            self.lineEdit.setText("Geçersiz İşlem")
            
        
        self.label_2.setText(self.lineEdit.text())

        

    def click13(self):
        yazi = self.lineEdit.text() + "+"
        self.lineEdit.setText(yazi)

    def click14(self):
        yazi = self.lineEdit.text() + "-"
        self.lineEdit.setText(yazi)

    def click15(self):
        yazi = self.lineEdit.text() + "*"
        self.lineEdit.setText(yazi)

    def click16(self):
        yazi = self.lineEdit.text() + "/"
        self.lineEdit.setText(yazi)
        

    def click17(self):
        yazi = self.lineEdit.text() + "**"
        self.lineEdit.setText(yazi)
        
        
        
    def handle_right_click(self):
        
        yazi = self.lineEdit.text() + "."
        self.lineEdit.setText(yazi)
        
        
        
    def delete(self):
        text = self.lineEdit.text()
        print(text[:len(text)-1]) 
        self.lineEdit.setText(text[:len(text)-1]) 
        
        
        
    def karekok(self):
        try:
            self.label_2.setText(self.lineEdit.text())
            txt = self.lineEdit.text()
            integer = int(txt)   
            rp = int(math.sqrt(abs(integer)))     
        
        
            ans = eval("{}*{}".format(str(rp),str(rp)))
        
            if str(ans) == self.label_2.text():
                self.lineEdit.setText(str(rp)+"^2") 
            
            
            else:         
                self.lineEdit.setText("Bu Sayının Karekökü Yoktur")
            
        except ValueError:
            self.lineEdit.setText("Geçersiz İşlem")
            

    
    def clicklast(self):
        # get the label text 
        equation = self.lineEdit.text() 
  
        try: 
            # getting the ans 
            ans = eval(equation) 
  
            # setting text to the label 
            self.lineEdit.setText(str(ans)) 
  
        except: 
            # setting text to the label 
            self.lineEdit.setText("Geçersiz İşlem")
            
        
        self.label_2.setText(self.lineEdit.text())
        
        
        
app = QApplication(sys.argv)
pencere = Pencere()
pencere.setWindowTitle("Hesap Makinesi")
pencere.show()
sys.exit(app.exec_())

İnşallah beğenirsiniz :slight_smile:

Sizin için çok basit bir proje olsa gerek fakat benim için uğraştırıcı, ama keyifli bir projeydi.

2 Beğeni

İşletim sisteminin hesap makinesini kullanmayan da ne biliyim :smiley:

1 Beğeni

aynen mesela kalide çok detaylı bir hesap makinesi var onun dışında mac ve windowsta da hesap makinesi var ama eğer bir dilde gelişmek istiyorsan o zaman bu hesap makinesi yazma işi iyidir

1 Beğeni

Benim hoşuma gitmiyor o ya :joy:
Google yazdım daha genel olur diye.

Aslında çok kapsamlı da arayüzü hoşuma gitmiyor.