Last active
August 10, 2017 08:38
-
-
Save ozcanyarimdunya/a030e607a2e8f67e5969c8ee544bd11c to your computer and use it in GitHub Desktop.
Calculator
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
# Form implementation generated from reading ui file 'ui_xml\calc.ui' | |
# | |
# Created by: PyQt5 UI code generator 5.8.2 | |
# | |
# WARNING! All changes made in this file will be lost! | |
from PyQt5 import QtCore, QtGui, QtWidgets | |
class Ui_MainWindow(object): | |
def setupUi(self, MainWindow): | |
MainWindow.setObjectName("MainWindow") | |
MainWindow.resize(340, 218) | |
self.centralwidget = QtWidgets.QWidget(MainWindow) | |
self.centralwidget.setObjectName("centralwidget") | |
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.centralwidget) | |
self.verticalLayout_2.setObjectName("verticalLayout_2") | |
self.txt_res = QtWidgets.QLineEdit(self.centralwidget) | |
self.txt_res.setObjectName("txt_res") | |
self.verticalLayout_2.addWidget(self.txt_res) | |
self.verticalLayout = QtWidgets.QVBoxLayout() | |
self.verticalLayout.setObjectName("verticalLayout") | |
self.gridLayout = QtWidgets.QGridLayout() | |
self.gridLayout.setObjectName("gridLayout") | |
self.btn_4 = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_4.setObjectName("btn_4") | |
self.gridLayout.addWidget(self.btn_4, 1, 0, 1, 1) | |
self.btn_3 = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_3.setObjectName("btn_3") | |
self.gridLayout.addWidget(self.btn_3, 0, 2, 1, 1) | |
self.btn_min = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_min.setObjectName("btn_min") | |
self.gridLayout.addWidget(self.btn_min, 0, 3, 1, 1) | |
self.btn_7 = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_7.setObjectName("btn_7") | |
self.gridLayout.addWidget(self.btn_7, 2, 0, 1, 1) | |
self.btn_8 = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_8.setObjectName("btn_8") | |
self.gridLayout.addWidget(self.btn_8, 2, 1, 1, 1) | |
self.btn_div = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_div.setObjectName("btn_div") | |
self.gridLayout.addWidget(self.btn_div, 3, 3, 1, 1) | |
self.btn_9 = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_9.setObjectName("btn_9") | |
self.gridLayout.addWidget(self.btn_9, 2, 2, 1, 1) | |
self.btn_6 = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_6.setObjectName("btn_6") | |
self.gridLayout.addWidget(self.btn_6, 1, 2, 1, 1) | |
self.btn_plu = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_plu.setObjectName("btn_plu") | |
self.gridLayout.addWidget(self.btn_plu, 1, 3, 1, 1) | |
self.btn_5 = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_5.setObjectName("btn_5") | |
self.gridLayout.addWidget(self.btn_5, 1, 1, 1, 1) | |
self.btn_1 = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_1.setObjectName("btn_1") | |
self.gridLayout.addWidget(self.btn_1, 0, 0, 1, 1) | |
self.btn_0 = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_0.setObjectName("btn_0") | |
self.gridLayout.addWidget(self.btn_0, 3, 0, 1, 1) | |
self.btn_mul = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_mul.setObjectName("btn_mul") | |
self.gridLayout.addWidget(self.btn_mul, 2, 3, 1, 1) | |
self.btn_2 = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_2.setObjectName("btn_2") | |
self.gridLayout.addWidget(self.btn_2, 0, 1, 1, 1) | |
self.btn_eq = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_eq.setAutoDefault(True) | |
self.btn_eq.setDefault(True) | |
self.btn_eq.setFlat(False) | |
self.btn_eq.setObjectName("btn_eq") | |
self.gridLayout.addWidget(self.btn_eq, 3, 1, 1, 1) | |
self.btn_cl = QtWidgets.QPushButton(self.centralwidget) | |
self.btn_cl.setObjectName("btn_cl") | |
self.gridLayout.addWidget(self.btn_cl, 3, 2, 1, 1) | |
self.verticalLayout.addLayout(self.gridLayout) | |
self.verticalLayout_2.addLayout(self.verticalLayout) | |
MainWindow.setCentralWidget(self.centralwidget) | |
self.statusbar = QtWidgets.QStatusBar(MainWindow) | |
self.statusbar.setObjectName("statusbar") | |
MainWindow.setStatusBar(self.statusbar) | |
self.retranslateUi(MainWindow) | |
QtCore.QMetaObject.connectSlotsByName(MainWindow) | |
def retranslateUi(self, MainWindow): | |
_translate = QtCore.QCoreApplication.translate | |
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) | |
self.btn_4.setText(_translate("MainWindow", "4")) | |
self.btn_3.setText(_translate("MainWindow", "3")) | |
self.btn_min.setText(_translate("MainWindow", "-")) | |
self.btn_7.setText(_translate("MainWindow", "7")) | |
self.btn_8.setText(_translate("MainWindow", "8")) | |
self.btn_div.setText(_translate("MainWindow", "/")) | |
self.btn_9.setText(_translate("MainWindow", "9")) | |
self.btn_6.setText(_translate("MainWindow", "6")) | |
self.btn_plu.setText(_translate("MainWindow", "+")) | |
self.btn_5.setText(_translate("MainWindow", "5")) | |
self.btn_1.setText(_translate("MainWindow", "1")) | |
self.btn_0.setText(_translate("MainWindow", "0")) | |
self.btn_mul.setText(_translate("MainWindow", "x")) | |
self.btn_2.setText(_translate("MainWindow", "2")) | |
self.btn_eq.setText(_translate("MainWindow", "=")) | |
self.btn_cl.setText(_translate("MainWindow", "Clear")) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<ui version="4.0"> | |
<class>MainWindow</class> | |
<widget class="QMainWindow" name="MainWindow"> | |
<property name="geometry"> | |
<rect> | |
<x>0</x> | |
<y>0</y> | |
<width>340</width> | |
<height>218</height> | |
</rect> | |
</property> | |
<property name="windowTitle"> | |
<string>MainWindow</string> | |
</property> | |
<widget class="QWidget" name="centralwidget"> | |
<layout class="QVBoxLayout" name="verticalLayout_2"> | |
<item> | |
<widget class="QLineEdit" name="txt_res"/> | |
</item> | |
<item> | |
<layout class="QVBoxLayout" name="verticalLayout"> | |
<item> | |
<layout class="QGridLayout" name="gridLayout"> | |
<item row="1" column="0"> | |
<widget class="QPushButton" name="btn_4"> | |
<property name="text"> | |
<string>4</string> | |
</property> | |
</widget> | |
</item> | |
<item row="0" column="2"> | |
<widget class="QPushButton" name="btn_3"> | |
<property name="text"> | |
<string>3</string> | |
</property> | |
</widget> | |
</item> | |
<item row="0" column="3"> | |
<widget class="QPushButton" name="btn_min"> | |
<property name="text"> | |
<string>-</string> | |
</property> | |
</widget> | |
</item> | |
<item row="2" column="0"> | |
<widget class="QPushButton" name="btn_7"> | |
<property name="text"> | |
<string>7</string> | |
</property> | |
</widget> | |
</item> | |
<item row="2" column="1"> | |
<widget class="QPushButton" name="btn_8"> | |
<property name="text"> | |
<string>8</string> | |
</property> | |
</widget> | |
</item> | |
<item row="3" column="3"> | |
<widget class="QPushButton" name="btn_div"> | |
<property name="text"> | |
<string>/</string> | |
</property> | |
</widget> | |
</item> | |
<item row="2" column="2"> | |
<widget class="QPushButton" name="btn_9"> | |
<property name="text"> | |
<string>9</string> | |
</property> | |
</widget> | |
</item> | |
<item row="1" column="2"> | |
<widget class="QPushButton" name="btn_6"> | |
<property name="text"> | |
<string>6</string> | |
</property> | |
</widget> | |
</item> | |
<item row="1" column="3"> | |
<widget class="QPushButton" name="btn_plu"> | |
<property name="text"> | |
<string>+</string> | |
</property> | |
</widget> | |
</item> | |
<item row="1" column="1"> | |
<widget class="QPushButton" name="btn_5"> | |
<property name="text"> | |
<string>5</string> | |
</property> | |
</widget> | |
</item> | |
<item row="0" column="0"> | |
<widget class="QPushButton" name="btn_1"> | |
<property name="text"> | |
<string>1</string> | |
</property> | |
</widget> | |
</item> | |
<item row="3" column="0"> | |
<widget class="QPushButton" name="btn_0"> | |
<property name="text"> | |
<string>0</string> | |
</property> | |
</widget> | |
</item> | |
<item row="2" column="3"> | |
<widget class="QPushButton" name="btn_mul"> | |
<property name="text"> | |
<string>x</string> | |
</property> | |
</widget> | |
</item> | |
<item row="0" column="1"> | |
<widget class="QPushButton" name="btn_2"> | |
<property name="text"> | |
<string>2</string> | |
</property> | |
</widget> | |
</item> | |
<item row="3" column="1"> | |
<widget class="QPushButton" name="btn_eq"> | |
<property name="text"> | |
<string>=</string> | |
</property> | |
<property name="autoDefault"> | |
<bool>true</bool> | |
</property> | |
<property name="default"> | |
<bool>true</bool> | |
</property> | |
<property name="flat"> | |
<bool>false</bool> | |
</property> | |
</widget> | |
</item> | |
<item row="3" column="2"> | |
<widget class="QPushButton" name="btn_cl"> | |
<property name="text"> | |
<string>Clear</string> | |
</property> | |
</widget> | |
</item> | |
</layout> | |
</item> | |
</layout> | |
</item> | |
</layout> | |
</widget> | |
<widget class="QStatusBar" name="statusbar"/> | |
</widget> | |
<resources/> | |
<connections/> | |
</ui> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sys | |
from PyQt5.QtWidgets import QMainWindow, QApplication | |
from form_calc import Ui_MainWindow | |
class Form(QMainWindow, Ui_MainWindow): | |
def __init__(self): | |
super(__class__, self).__init__() | |
self.setupUi(self) | |
self.show() | |
self.btn_0.clicked.connect(lambda: self.btn_clicked('0')) | |
self.btn_1.clicked.connect(lambda: self.btn_clicked('1')) | |
self.btn_2.clicked.connect(lambda: self.btn_clicked('2')) | |
self.btn_3.clicked.connect(lambda: self.btn_clicked('3')) | |
self.btn_4.clicked.connect(lambda: self.btn_clicked('4')) | |
self.btn_5.clicked.connect(lambda: self.btn_clicked('5')) | |
self.btn_6.clicked.connect(lambda: self.btn_clicked('6')) | |
self.btn_7.clicked.connect(lambda: self.btn_clicked('7')) | |
self.btn_8.clicked.connect(lambda: self.btn_clicked('8')) | |
self.btn_9.clicked.connect(lambda: self.btn_clicked('9')) | |
self.btn_min.clicked.connect(lambda: self.btn_clicked('-')) | |
self.btn_plu.clicked.connect(lambda: self.btn_clicked('+')) | |
self.btn_mul.clicked.connect(lambda: self.btn_clicked('*')) | |
self.btn_div.clicked.connect(lambda: self.btn_clicked('/')) | |
self.btn_eq.clicked.connect(lambda: self.eq_clicked()) | |
self.btn_cl.clicked.connect(lambda: self.txt_res.clear()) | |
def btn_clicked(self, text): | |
old = self.txt_res.text() | |
self.txt_res.setText(old + text) | |
def eq_clicked(self): | |
text = self.txt_res.text() | |
try: | |
res = eval(text) | |
self.txt_res.setText(str(res)) | |
except: | |
self.statusbar.showMessage('Error!') | |
if __name__ == '__main__': | |
app = QApplication(sys.argv) | |
form = Form() | |
sys.exit(app.exec_()) |
Author
ozcanyarimdunya
commented
Aug 10, 2017
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment