ඔනැම IDE එකක් open කර මෙම කෝඩ් එක type කරන්න.
import tkinter root = tkinter.Tk() root.title("Calculator") expression = "" # Create functions def add(value): global expression expression += value label_result.config(text=expression) def clear(): global expression expression = "" label_result.config(text=expression) def calculate(): global expression result = "" if expression != "": try: result = eval(expression) except: result = "error" expression = "" label_result.config(text=result) expression = str(result) # Create key bindings def key_handler(event): global expression if event.keysym in ("1", "2", "3", "4", "5", "6", "7", "8", "9", "0"): add(event.keysym) elif event.keysym == "plus": add("+") elif event.keysym == "minus": add("-") elif event.keysym == "asterisk": add("*") elif event.keysym == "slash": add("/") elif event.keysym in ("c", "C"): clear() elif event.keysym == "period": add(".") elif event.keysym in ("Return", "equal"): calculate() elif event.keysym == "BackSpace": expression = expression[0:len(expression)-1] label_result.config(text=expression) root.bind("<Key>", key_handler) # Create GUI label_result = tkinter.Label(root, text="") label_result.grid(row=0, column=0, columnspan=4) button_1 = tkinter.Button(root, text="1", command=lambda: add("1")) button_1.grid(row=1, column=0) button_2 = tkinter.Button(root, text="2", command=lambda: add("2")) button_2.grid(row=1, column=1) button_3 = tkinter.Button(root, text="3", command=lambda: add("3")) button_3.grid(row=1, column=2) button_divide = tkinter.Button(root, text="/", command=lambda: add("/")) button_divide.grid(row=1, column=3) button_4 = tkinter.Button(root, text="4", command=lambda: add("4")) button_4.grid(row=2, column=0) button_5 = tkinter.Button(root, text="5", command=lambda: add("5")) button_5.grid(row=2, column=1) button_6 = tkinter.Button(root, text="6", command=lambda: add("6")) button_6.grid(row=2, column=2) button_multiply = tkinter.Button(root, text="*", command=lambda: add("*")) button_multiply.grid(row=2, column=3) button_7 = tkinter.Button(root, text="7", command=lambda: add("7")) button_7.grid(row=3, column=0) button_8 = tkinter.Button(root, text="8", command=lambda: add("8")) button_8.grid(row=3, column=1) button_9 = tkinter.Button(root, text="9", command=lambda: add("9")) button_9.grid(row=3, column=2) button_subtract = tkinter.Button(root, text="-", command=lambda: add("-")) button_subtract.grid(row=3, column=3) button_clear = tkinter.Button(root, text="C", command=lambda: clear()) button_clear.grid(row=4, column=0) button_0 = tkinter.Button(root, text="0", command=lambda: add("0")) button_0.grid(row=4, column=1) button_dot = tkinter.Button(root, text=".", command=lambda: add(".")) button_dot.grid(row=4, column=2) button_add = tkinter.Button(root, text="+", command=lambda: add("+")) button_add.grid(row=4, column=3) button_equals = tkinter.Button(root, text="=", width=16, command=lambda: calculate()) button_equals.grid(row=5, column=0, columnspan=4) root.mainloop() දැන් රන්කරලා ගානක් හදන්න
perfect brother.
import tkinter
root = tkinter.Tk()
root.title(“Calculator”)
expression = “”
# Create functions
def add(value):
global expression
expression += value
label_result.config(text=expression)
def clear():
global expression
expression = “”
label_result.config(text=expression)
def calculate():
global expression
result = “”
if expression != “”:
try:
result = eval(expression)
except:
result = “error”
expression = “”
label_result.config(text=result)
# Create GUI
label_result = tkinter.Label(root, text=””)
label_result.grid(row=0, column=0, columnspan=4)
button_1 = tkinter.Button(root, text=”1″, command=lambda: add(“1″))
button_1.grid(row=1, column=0)
button_2 = tkinter.Button(root, text=”2”, command=lambda: add(“2″))
button_2.grid(row=1, column=1)
button_3 = tkinter.Button(root, text=”3”, command=lambda: add(“3″))
button_3.grid(row=1, column=2)
button_divide = tkinter.Button(root, text=”/”, command=lambda: add(“/”))
button_divide.grid(row=1, column=3)
button_4 = tkinter.Button(root, text=”4″, command=lambda: add(“4″))
button_4.grid(row=2, column=0)
button_5 = tkinter.Button(root, text=”5”, command=lambda: add(“5″))
button_5.grid(row=2, column=1)
button_6 = tkinter.Button(root, text=”6”, command=lambda: add(“6″))
button_6.grid(row=2, column=2)
button_multiply = tkinter.Button(root, text=”*”, command=lambda: add(“*”))
button_multiply.grid(row=2, column=3)
button_7 = tkinter.Button(root, text=”7″, command=lambda: add(“7″))
button_7.grid(row=3, column=0)
button_8 = tkinter.Button(root, text=”8”, command=lambda: add(“8″))
button_8.grid(row=3, column=1)
button_9 = tkinter.Button(root, text=”9”, command=lambda: add(“9″))
button_9.grid(row=3, column=2)
button_subtract = tkinter.Button(root, text=”-“, command=lambda: add(“-“))
button_subtract.grid(row=3, column=3)
button_clear = tkinter.Button(root, text=”C”, command=lambda: clear())
button_clear.grid(row=4, column=0)
button_0 = tkinter.Button(root, text=”0″, command=lambda: add(“0″))
button_0.grid(row=4, column=1)
button_dot = tkinter.Button(root, text=”.”, command=lambda: add(“.”))
button_dot.grid(row=4, column=2)
button_add = tkinter.Button(root, text=”+”, command=lambda: add(“+”))
button_add.grid(row=4, column=3)
button_equals = tkinter.Button(root, text=”=”, width=16, command=lambda: calculate())
button_equals.grid(row=5, column=0, columnspan=4)
root.mainloop()
It’s Perfect
වැරදී කියල පෙන්නනවනෙ ඒකට මොකෝ කරන්නේ.
import tkinter
root = tkinter.Tk()
root.title(“Calculator”)
expression = “”
# Create functions
def add(value):
global expression
expression += value
label_result.config(text=expression)
def clear():
global expression
expression = “”
label_result.config(text=expression)
def calculate():
global expression
result = “”
if expression != “”:
try:
result = eval(expression)
except:
result = “error”
expression = “”
label_result.config(text=result)
# Create GUI
label_result = tkinter.Label(root, text=””)
label_result.grid(row=0, column=0, columnspan=4)
button_1 = tkinter.Button(root, text=”1″, command=lambda: add(“1″))
button_1.grid(row=1, column=0)
button_2 = tkinter.Button(root, text=”2”, command=lambda: add(“2″))
button_2.grid(row=1, column=1)
button_3 = tkinter.Button(root, text=”3”, command=lambda: add(“3″))
button_3.grid(row=1, column=2)
button_divide = tkinter.Button(root, text=”/”, command=lambda: add(“/”))
button_divide.grid(row=1, column=3)
button_4 = tkinter.Button(root, text=”4″, command=lambda: add(“4″))
button_4.grid(row=2, column=0)
button_5 = tkinter.Button(root, text=”5”, command=lambda: add(“5″))
button_5.grid(row=2, column=1)
button_6 = tkinter.Button(root, text=”6”, command=lambda: add(“6″))
button_6.grid(row=2, column=2)
button_multiply = tkinter.Button(root, text=”*”, command=lambda: add(“*”))
button_multiply.grid(row=2, column=3)
button_7 = tkinter.Button(root, text=”7″, command=lambda: add(“7″))
button_7.grid(row=3, column=0)
button_8 = tkinter.Button(root, text=”8”, command=lambda: add(“8″))
button_8.grid(row=3, column=1)
button_9 = tkinter.Button(root, text=”9”, command=lambda: add(“9″))
button_9.grid(row=3, column=2)
button_subtract = tkinter.Button(root, text=”-“, command=lambda: add(“-“))
button_subtract.grid(row=3, column=3)
button_clear = tkinter.Button(root, text=”C”, command=lambda: clear())
button_clear.grid(row=4, column=0)
button_0 = tkinter.Button(root, text=”0″, command=lambda: add(“0″))
button_0.grid(row=4, column=1)
button_dot = tkinter.Button(root, text=”.”, command=lambda: add(“.”))
button_dot.grid(row=4, column=2)
button_add = tkinter.Button(root, text=”+”, command=lambda: add(“+”))
button_add.grid(row=4, column=3)
button_equals = tkinter.Button(root, text=”=”, width=16, command=lambda: calculate())
button_equals.grid(row=5, column=0, columnspan=4)
root.mainloop()
from PyQt5 import QtCore, QtGui, QtWidgets
# style for qtwindow
style = “””
QWidget{
background: #262D37;
}
QLabel{
color: #fff;
}
QLabel#output_label{
padding: 2px;
border-radius:5px;
border: 2px solid #fff;
}
QPushButton{
color: white;
background: #0577a8;
border: 1px #DADADA solid;
padding: 5px 10px;
border-radius: 5px;
outline: none;
}
QPushButton:hover{
border:1px #C6C6C6 solid;
background: #0092D0;
}
QLineEdit{
border: 1px solid white;
border-radius: 5px;
color: white;
}
QPushButton{
color: white;
background: #0577a8;
border: 1px #DADADA solid;
padding: 5px 10px;
border-radius: 5px;
outline: none;
}
QPushButton:hover{
border:1px #C6C6C6 solid;
background: #0092D0;
}
“””
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(“MainWindow”)
MainWindow.resize(251, 331)
# set Icon on qwindow
MainWindow.setWindowIcon(QtGui.QIcon(“”))
# fixed size of qwindow
MainWindow.setFixedSize(QtCore.QSize(251, 331))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName(“centralwidget”)
self.output_label = QtWidgets.QLabel(self.centralwidget)
self.output_label.setGeometry(QtCore.QRect(10, 10, 231, 61))
font = QtGui.QFont()
font.setFamily(“Consolas”)
font.setPointSize(22)
font.setBold(False)
font.setWeight(50)
self.output_label.setFont(font)
self.output_label.setCursor(QtGui.QCursor(QtCore.Qt.IBeamCursor))
self.output_label.setFrameShape(QtWidgets.QFrame.Box)
self.output_label.setFrameShadow(QtWidgets.QFrame.Raised)
self.output_label.setMidLineWidth(1)
self.output_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.output_label.setWordWrap(False)
self.output_label.setIndent(3)
self.output_label.setObjectName(“output_label”)
self.mode_button = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“%”))
self.mode_button.setGeometry(QtCore.QRect(10, 80, 51, 41))
font = QtGui.QFont()
font.setPointSize(15)
self.mode_button.setFont(font)
self.mode_button.setObjectName(“mode_button”)
self.c_button = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“C”))
self.c_button.setGeometry(QtCore.QRect(70, 80, 51, 41))
font = QtGui.QFont()
font.setPointSize(15)
self.c_button.setFont(font)
self.c_button.setObjectName(“c_button”)
self.shift_button = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.remove_it())
self.shift_button.setGeometry(QtCore.QRect(130, 80, 51, 41))
font = QtGui.QFont()
font.setPointSize(15)
self.shift_button.setFont(font)
self.shift_button.setObjectName(“shift_button”)
self.button_divi = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“/”))
self.button_divi.setGeometry(QtCore.QRect(190, 80, 51, 41))
font = QtGui.QFont()
font.setPointSize(15)
self.button_divi.setFont(font)
self.button_divi.setObjectName(“button_divi”)
self.button_mlti = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“*”))
self.button_mlti.setGeometry(QtCore.QRect(190, 130, 51, 41))
font = QtGui.QFont()
font.setPointSize(15)
self.button_mlti.setFont(font)
self.button_mlti.setObjectName(“button_mlti”)
self.button_9 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“9”))
self.button_9.setGeometry(QtCore.QRect(10, 130, 51, 41))
font = QtGui.QFont()
font.setPointSize(25)
self.button_9.setFont(font)
self.button_9.setObjectName(“button_9”)
self.button_7 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“7”))
self.button_7.setGeometry(QtCore.QRect(130, 130, 51, 41))
font = QtGui.QFont()
font.setPointSize(25)
self.button_7.setFont(font)
self.button_7.setIconSize(QtCore.QSize(10, 10))
self.button_7.setObjectName(“button_7”)
self.button_8 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“8”))
self.button_8.setGeometry(QtCore.QRect(70, 130, 51, 41))
font = QtGui.QFont()
font.setPointSize(25)
self.button_8.setFont(font)
self.button_8.setObjectName(“button_8”)
self.button_sub = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“-“))
self.button_sub.setGeometry(QtCore.QRect(190, 180, 51, 41))
font = QtGui.QFont()
font.setPointSize(15)
self.button_sub.setFont(font)
self.button_sub.setObjectName(“button_sub”)
self.button_6 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“6”))
self.button_6.setGeometry(QtCore.QRect(10, 180, 51, 41))
font = QtGui.QFont()
font.setPointSize(25)
self.button_6.setFont(font)
self.button_6.setObjectName(“button_6”)
self.button_4 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“4”))
self.button_4.setGeometry(QtCore.QRect(130, 180, 51, 41))
font = QtGui.QFont()
font.setPointSize(25)
self.button_4.setFont(font)
self.button_4.setObjectName(“button_4”)
self.button_5 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“5”))
self.button_5.setGeometry(QtCore.QRect(70, 180, 51, 41))
font = QtGui.QFont()
font.setPointSize(25)
self.button_5.setFont(font)
self.button_5.setObjectName(“button_5”)
self.button_add = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“+”))
self.button_add.setGeometry(QtCore.QRect(190, 230, 51, 41))
font = QtGui.QFont()
font.setPointSize(15)
self.button_add.setFont(font)
self.button_add.setObjectName(“button_add”)
self.button_3 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“3”))
self.button_3.setGeometry(QtCore.QRect(130, 230, 51, 41))
font = QtGui.QFont()
font.setPointSize(25)
self.button_3.setFont(font)
self.button_3.setObjectName(“button_3”)
self.button_1 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“1”))
self.button_1.setGeometry(QtCore.QRect(10, 230, 51, 41))
font = QtGui.QFont()
font.setPointSize(25)
self.button_1.setFont(font)
self.button_1.setObjectName(“button_1”)
self.button_2 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“2”))
self.button_2.setGeometry(QtCore.QRect(70, 230, 51, 41))
font = QtGui.QFont()
font.setPointSize(25)
self.button_2.setFont(font)
self.button_2.setObjectName(“button_2”)
self.button_mark = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.dot_it())
self.button_mark.setGeometry(QtCore.QRect(130, 280, 51, 41))
font = QtGui.QFont()
font.setPointSize(15)
self.button_mark.setFont(font)
self.button_mark.setObjectName(“button_mark”)
self.p_m_button = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.plus_minus_it())
self.p_m_button.setGeometry(QtCore.QRect(10, 280, 51, 41))
font = QtGui.QFont()
font.setPointSize(15)
self.p_m_button.setFont(font)
self.p_m_button.setObjectName(“p_m_button”)
self.button_eq = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.math_it())
self.button_eq.setGeometry(QtCore.QRect(190, 280, 51, 41))
font = QtGui.QFont()
font.setPointSize(15)
self.button_eq.setFont(font)
self.button_eq.setObjectName(“button_eq”)
self.button_0 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda:self.press_it(“0”))
self.button_0.setGeometry(QtCore.QRect(70, 280, 51, 41))
font = QtGui.QFont()
font.setPointSize(25)
self.button_0.setFont(font)
self.button_0.setObjectName(“button_0”)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def remove_it(self):
screen = self.output_label.text()
# remove last things
screen = screen[:-1]
self.output_label.setText(screen)
def plus_minus_it(self):
screen = self.output_label.text()
if “-” in screen:
self.output_label.setText(screen.replace(‘-‘, ”))
else:
self.output_label.setText(f”-{screen}”)
def dot_it(self):
screen = self.output_label.text()
if screen[-1] == “.”:
pass
else:
self.output_label.setText(f'{screen}.’)
def math_it(self):
try:
screen = self.output_label.text()
self.output_label.setText(str(eval(screen)))
except:
self.output_label.setText(“ERROR”)
def press_it(self, pressed):
if pressed == “C”:
self.output_label.setText(‘0’)
else:
if self.output_label.text() == ‘0’:
self.output_label.setText(”)
self.output_label.setText(f'{self.output_label.text()}{pressed}’)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate(“MainWindow”, “MainWindow”))
self.output_label.setText(_translate(“MainWindow”, “0”))
self.mode_button.setText(_translate(“MainWindow”, “%”))
self.c_button.setText(_translate(“MainWindow”, “C”))
self.shift_button.setText(_translate(“MainWindow”, “<<"))
self.button_divi.setText(_translate("MainWindow", "/"))
self.button_mlti.setText(_translate("MainWindow", "X"))
self.button_9.setText(_translate("MainWindow", "9"))
self.button_7.setText(_translate("MainWindow", "7"))
self.button_8.setText(_translate("MainWindow", "8"))
self.button_sub.setText(_translate("MainWindow", "-"))
self.button_6.setText(_translate("MainWindow", "6"))
self.button_4.setText(_translate("MainWindow", "4"))
self.button_5.setText(_translate("MainWindow", "5"))
self.button_add.setText(_translate("MainWindow", "+"))
self.button_3.setText(_translate("MainWindow", "3"))
self.button_1.setText(_translate("MainWindow", "1"))
self.button_2.setText(_translate("MainWindow", "2"))
self.button_mark.setText(_translate("MainWindow", "."))
self.p_m_button.setText(_translate("MainWindow", "+/-"))
self.button_eq.setText(_translate("MainWindow", "="))
self.button_0.setText(_translate("MainWindow", "0"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
app.setStyleSheet(style)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Perfect