ماشین حساب گرافیکی
برنامه گرافیکی بنویسید که داری 2 فیلد برای ورود عدد و 4 دکمه برای جمع و تفریق و ضرب و تقسیم باشد. با انتخاب هر دکمه، محاسبات مربوطه روی 2 عدد وارد شده انجام شود و نتیجه نمایش داده شود.
برنامه گرافیکی بنویسید که داری 2 فیلد برای ورود عدد و 4 دکمه برای جمع و تفریق و ضرب و تقسیم باشد. با انتخاب هر دکمه، محاسبات مربوطه روی 2 عدد وارد شده انجام شود و نتیجه نمایش داده شود.
from tkinter import *
# Screen Settings
screen = Tk()
screen.geometry("450x550")
screen.resizable(False, False)
screen.title("Calculator")
screen.configure(bg="black")
# Button Commands
def btn_1():
text = entry.get()
entry.insert(INSERT, "1")
def btn_2():
text = entry.get()
entry.insert(INSERT, "2")
def btn_3():
text = entry.get()
entry.insert(INSERT, "3")
def btn_4():
text = entry.get()
entry.insert(INSERT, "4")
def btn_5():
text = entry.get()
entry.insert(INSERT, "5")
def btn_6():
text = entry.get()
entry.insert(INSERT, "6")
def btn_7():
text = entry.get()
entry.insert(INSERT, "7")
def btn_8():
text = entry.get()
entry.insert(INSERT, "8")
def btn_9():
text = entry.get()
entry.insert(INSERT, "9")
def btn_0():
text = entry.get()
entry.insert(INSERT, "0")
def plus():
text = entry.get()
entry.insert(INSERT, "+")
def minuse():
text = entry.get()
entry.insert(INSERT, "-")
def division():
text = entry.get()
entry.insert(INSERT, "/")
def multiplation():
text = entry.get()
entry.insert(INSERT, "*")
def equal():
text = entry.get()
try:
answer = eval(f"{text}")
entry.delete(0, END)
entry.insert(INSERT, answer)
except:
entry.delete(0, END)
entry.insert(INSERT, "ERROR")
def clear():
entry.delete(0, END)
# Buttens and Entry
entry = Entry(width=17, font=("Comic Sans Ms", 30), bg="black", fg="white", insertbackground="gray")
# Number Buttons
btn1 = Button(text="1", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=btn_1)
btn2 = Button(text="2", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=btn_2)
btn3 = Button(text="3", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=btn_3)
btn4 = Button(text="4", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=btn_4)
btn5 = Button(text="5", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=btn_5)
btn6 = Button(text="6", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=btn_6)
btn7 = Button(text="7", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=btn_7)
btn8 = Button(text="8", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=btn_8)
btn9 = Button(text="9", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=btn_9)
btn0 = Button(text="0", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=btn_0)
# Oprator Buttons
clear_btn = Button(text="C", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=clear)
equal_btn = Button(text="=", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=equal)
plus_btn = Button(text="+", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=plus)
minuse_btn = Button(text="-", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=minuse)
division_btn = Button(text="÷", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=division)
multiplate_btn = Button(text="×", width=6, height=2, cursor="hand2", bg="black", fg="white", font=("Comic Sans Ms", 20), activebackground="gray", activeforeground="black", command=multiplation)
# Place In Screen
entry.place(x=17.5, y=15)
btn1.place(x=16, y=100)
btn2.place(x=121, y=100)
btn3.place(x=226, y=100)
btn4.place(x=16, y=204)
btn5.place(x=121, y=204)
btn6.place(x=226, y=204)
btn7.place(x=16, y=308)
btn8.place(x=121, y=308)
btn9.place(x=226, y=308)
btn0.place(x=121, y=412)
clear_btn.place(x=16, y=412)
equal_btn.place(x=226, y=412)
plus_btn.place(x=331, y=100)
minuse_btn.place(x=331, y=204)
multiplate_btn.place(x=331, y=308)
division_btn.place(x=331, y=412)
screen.mainloop()
import tkinter as tk
GC=tk.Tk()
GC.title('Graphical Calculator')
GC.geometry('500x500')
FN=0
SN=0
final=0
def SUM():
FN=0
FN=entry1.get()
SN=0
SN=entry2.get()
SN=int(SN)
FN=int(FN)
final=FN+SN
fin=tk.Label(text=f'{final}')
fin.pack()
fin.place(x=450,width=50)
aml=tk.Label(text='+')
aml.pack()
aml.place(x=200,width=50)
def MENHA():
aml=tk.Label(text='-')
aml.pack()
aml.place(x=200,width=50)
FN=entry1.get()
FN=int(FN)
SN=entry2.get()
SN=int(SN)
final=FN-SN
fin=tk.Label(text=f'={final}')
fin.pack()
fin.place(x=450,width=50)
def PRODUCT():
aml=tk.Label(text='x')
aml.pack()
aml.place(x=200,width=50)
FN=entry1.get()
FN=int(FN)
SN=entry2.get()
SN=int(SN)
final=FN*SN
fin=tk.Label(text=f'={final}')
fin.pack()
fin.place(x=450,width=50)
def DEVIDE():
aml=tk.Label(text='/')
aml.pack()
aml.place(x=200,width=50)
FN=entry1.get()
FN=int(FN)
SN=entry2.get()
SN=int(SN)
final=FN/SN
fin=tk.Label(text=f'={final}')
fin.pack()
fin.place(x=450,width=50)
entry1=tk.Entry()
entry1.pack()
entry1.place(x=0,y=0,height=20,width=200)
entry2=tk.Entry()
entry2.pack()
entry2.place(x=250,y=0,height=20,width=200)
Sum=tk.Button(command=SUM,text='+',font=("Arial", 50))
Sum.pack()
Sum.place(y=20,x=0,width=250,height=240)
Men=tk.Button(command=MENHA,text='-',font=("Arial", 50))
Men.pack()
Men.place(y=20,x=250,width=250,height=240)
Pro=tk.Button(command=PRODUCT,text='x',font=("Arial", 50))
Pro.pack()
Pro.place(y=270,x=0,height=240,width=250)
Dev=tk.Button(command=DEVIDE,text='/',font=("Arial", 50))
Dev.pack()
Dev.place(x=250,y=270,height=240,width=250)
print(FN)
GC.mainloop()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/style.css">
<title>Document</title>
<style>
body {
height: 100vh;
width: 100%;
background: rgb(0, 200, 255);
margin: 0;
}
* {
margin: 0;
}
.containenr {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.containenr .calc {
width: 450px;
height: 550px;
background-color: rgba(255, 255, 255, 0.284);
border: 2px solid gray;
border-radius: 60px;
backdrop-filter: blur(10px);
display: flex;
flex-direction: column;
align-items: center;
gap: 10%;
}
.containenr .calc .top {
height: 20%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.containenr .calc .top .result {
height: 50%;
width: 80%;
background-color: gray;
border-radius: 20px;
padding-right: 5%;
font-size: 40px;
color: white;
display: flex;
align-items: center;
overflow-x: auto;
}
.containenr .calc .top .result::-webkit-scrollbar {
background-color: transparent;
width: 10px;
}
.containenr .calc .top .result::-webkit-scrollbar-thumb {
background-color: rgb(255, 255, 255);
border-radius: 10px;
}
.containenr .calc .top .result::-webkit-scrollbar-corner {
background-color: transparent;
}
.containenr .calc .buttons {
height: 70%;
width: 100%;
}
.containenr .calc .buttons .inner {
height: 100%;
width: 100%;
display: flex;
align-items: center;
}
.containenr .calc .buttons .nums {
width: 60%;
height: 100%;
display: flex;
flex-wrap: wrap;
align-content: flex-start;
justify-content: center;
}
.containenr .calc .buttons .nums .num {
width: 80px;
height: 80px;
background-color: black;
border: 1px solid gray;
color: aliceblue;
margin: 0;
}
.containenr .calc .buttons .right {
width: 40%;
height: 100%;
display: flex;
flex-wrap: wrap;
align-content: flex-start;
}
.containenr .calc .buttons .right .am {
width: 80px;
height: 80px;
background-color: black;
border: 1px solid gray;
color: aliceblue;
}
</style>
</head>
<body>
<section class="containenr">
<div class="calc">
<div class="top">
<div class="result">
<p class="res"></p>
</div>
</div>
<div class="buttons">
<div class="inner">
<div class="nums">
<button class="num" type="button">0</button>
<button class="num" type="button">1</button>
<button class="num" type="button">2</button>
<button class="num" type="button">3</button>
<button class="num" type="button">4</button>
<button class="num" type="button">5</button>
<button class="num" type="button">6</button>
<button class="num" type="button">7</button>
<button class="num" type="button">8</button>
<button class="num" type="button">9</button>
</div>
<div class="right">
<button class="am" type="button">÷</button>
<button class="am" type="button">×</button>
<button class="am" type="button">-</button>
<button class="am" type="button">+</button>
<button class="am" type="button">CA</button>
<button class="am" type="button">√</button>
<button class="am" type="button">+/-</button>
<button class="am" type="button">=</button>
</div>
</div>
</div>
</div>
</section>
<script>let res = document.querySelector('.res');
let nums = document.querySelector('.nums');
let right = document.querySelector('.right');
nums.addEventListener('click', (e) => {
let click = e.target.closest('.num');
res.textContent += click.textContent;
});
console.log(res.textContent)
right.addEventListener('drag', (e) => {
e.preventDefault();
return;
})
right.addEventListener('click', e => {
try{
e.preventDefault();
var n = res.textContent.trim().split(' ');
console.log(n.length);
let click = e.target.closest('.am');
if (n.length == 3 && click.innerHTML !== 'CA') {
if (res.textContent == 'NaN') {
res.textContent = 'there was a error';
}
if (click.innerHTML == '=' || click.textContent == '+/-') {
if (n[1] == '+') {
res.textContent = Number(n[0]) + Number(n[2]);
}
else if (n[1] == '-') {
res.textContent = Number(n[0]) - Number(n[2]);
}
else if (n[1] == '×') {
res.textContent = Number(n[0]) * Number(n[2]);
}
else if (n[1] == '÷') {
res.textContent = Number(n[0]) / Number(n[2]);
}
else if (n[1] == '√') {
res.textContent = Math.sqrt(Number(n[0]));
}
}
else {
if (n[1] == '+') {
res.textContent = Number(n[0]) + Number(n[2]) + ' ' + click.textContent + ' ';
}
else if (n[1] == '-') {
res.textContent = Number(n[0]) - Number(n[2]) + ' ' + click.textContent + ' ';
}
else if (n[1] == '×') {
res.textContent = Number(n[0]) * Number(n[2]) + ' ' + click.textContent + ' ';
}
else if (n[1] == '÷') {
res.textContent = Number(n[0]) / Number(n[2]) + ' ' + click.textContent + ' ';
}
else if (n[1] == '√') {
res.textContent = Math.sqrt(Number(n[0])) + ' ' + click.textContent + ' ';
}
}
}
else if (n.length == 2 && click.textContent !== 'CA') {
if (click.textContent !== '=') {
let a = res.textContent.replace(n[1], click.textContent);
res.textContent = a;
}
else if (click.textContent == '=') {
if (n[1] == '√') {
res.textContent = Math.sqrt(Number(n[0]));
}
else {
return;
}
}
}
else if (n.length == 1 && click.textContent == '=') {
return;
}
else if (click.textContent == 'CA') {
if (res.textContent.length == 0) {
return;
}
n = [];
res.textContent = '';
}
else if (click.textContent == '+/-' && click.textContent !== 'CA') {
if (res.textContent.length == 0) {
return;
}
if (res.textContent.includes('-')) {
let a = res.textContent.replace('-', '');
res.textContent = a;
}
else {
res.textContent = `-${res.textContent}`;
}
}
else if (res.textContent.length == 0) {
return;
}
else {
res.textContent += ' ' + click.textContent + ' ';
}
}catch{
console.log('hello')
}
})
</script>
</body>
</html>
| Column 1 | Column 2 | Column 3 |
|---|---|---|
| Text | Text | Text |
import customtkinter as ctk
from tkinter import messagebox
app = ctk.CTk()
app.title("CalC")
app.geometry("240x195")
frame = ctk.CTkFrame(app , corner_radius = 0)
frame.pack(fill = "both" , expand = True)
def changecolor(color):
if color == "روشن":
ctk.set_appearance_mode("Light")
elif color == "تیره":
ctk.set_appearance_mode("Dark")
elif color == "سیستم":
ctk.set_appearance_mode("System")
menu_color = ctk.CTkOptionMenu(frame , values = ["سیستم" , "روشن" , "تیره"] , command = changecolor , font = ("B nazanin" , 20))
menu_color.pack(pady = 5)
label = ctk.CTkLabel(frame , text = "عبارت ریاضی را وارد کنید" , font = ("B nazanin" , 20))
label.pack(pady = 2)
i = ctk.CTkEntry(frame)
i.pack(pady = 5)
def h():
ie = i.get()
e = eval(ie)
messagebox.showinfo("mohasebe" , f"{e}")
btn = ctk.CTkButton(frame , text = "عبارت رو حل کن" , font = ("B nazanin" , 18) , command = h)
btn.pack(pady = 1)
def out():
app.quit()
out = ctk.CTkButton(frame , text = "خروج" , font = ("B nazanin" , 20) , command = out)
out.pack(pady = 5)
app.mainloop()
from customtkinter import *
win=CTk()
win.geometry('200x180')
win.config(background="black")
win.title('calculator')
def plus():
input_1=float(en_1.get())
input_2=float(en_2.get())
result=input_1+input_2
show_result(result)
def minus():
input_1=float(en_1.get())
input_2=float(en_2.get())
result=input_1-input_2
show_result(result)
def times():
input_1=float(en_1.get())
input_2=float(en_2.get())
result=input_1*input_2
show_result(result)
def division():
input_1=float(en_1.get())
input_2=float(en_2.get())
result=input_1/input_2
show_result(result)
def show_result(value):
result_label.configure(text=f"result: {value}")
result_label=CTkLabel(master=win,
text="result: ",
fg_color="white",
bg_color='black',
corner_radius=30,
text_color='black',
height=20,
width=30)
result_label.place(x=100, y=180, anchor="s")
en_1=CTkEntry(master=win,
text_color="black",
bg_color='black',
fg_color='white',
height=20,
width=200,
corner_radius=30)
en_1.place(x=0, y=4, anchor='nw')
en_2=CTkEntry(master=win,
text_color="black",
bg_color='black',
fg_color='white',
height=20,
width=200,
corner_radius=30)
en_2.place(x=0, y=25, anchor='nw')
btn_1=CTkButton(master=win,
fg_color="gray",
bg_color='black',
corner_radius=30,
text="+",
text_color="orange",
height=20,
width=30,
command=plus)
btn_1.place(x=100, y=65, anchor='n')
btn_3=CTkButton(master=win,
fg_color="gray",
bg_color='black',
corner_radius=30,
text="-",
text_color="orange",
height=20,
width=30,
command=minus)
btn_3.place(x=100, y=107, anchor='n')
btn_4=CTkButton(master=win,
fg_color="gray",
bg_color='black',
corner_radius=30,
text="x",
text_color="orange",
height=20,
width=30,
command=times)
btn_4.place(x=84, y=86, anchor='ne')
btn_5=CTkButton(master=win,
fg_color="gray",
bg_color='black',
corner_radius=30,
text="÷",
text_color="orange",
height=20,
width=30,
command=division)
btn_5.place(x=115, y=86, anchor='nw')
win.mainloop()
from tkinter import *
from tkinter import messagebox
def click(number):
entry.insert(END,number)
def clear():
entry.delete(0,END)
def equal():
try:
e = entry.get()
result = eval(e)
entry.delete(0,END)
entry.insert(0,result)
except ZeroDivisionError:
messagebox.showerror("Error","ZeroDivisionError")
except ValueError:
messagebox.showerror("Error","ValueError")
except NameError:
messagebox.showerror("Error","NameError")
except SyntaxError:
messagebox.showerror("Error","SyntaxError")
window = Tk()
window.geometry("375x340")
window.title("Calculator")
window.resizable(False,False)
entry = Entry(window)
frame_entry = PanedWindow(window,height=100)
frame_entry.pack(fill="x")
frame_button = PanedWindow(window,height=100)
frame_button.pack(fill="both",expand=1)
entry = Entry(frame_entry,bd=5)
entry.pack(fill="x")
Button(frame_button,text="7",width=11,height=4,bd=5,command=lambda c=7:click(c)).grid(column=1,row=1)
Button(frame_button,text="8",width=11,height=4,bd=5,command=lambda c=8:click(c)).grid(column=2,row=1)
Button(frame_button,text="9",width=11,height=4,bd=5,command=lambda c=9:click(c)).grid(column=3,row=1)
Button(frame_button,text="+",width=11,height=4,bd=5,command=lambda c="+":click(c)).grid(column=4,row=1)
Button(frame_button,text="4",width=11,height=4,bd=5,command=lambda c=4:click(c)).grid(column=1,row=2)
Button(frame_button,text="5",width=11,height=4,bd=5,command=lambda c=5:click(c)).grid(column=2,row=2)
Button(frame_button,text="6",width=11,height=4,bd=5,command=lambda c=6:click(c)).grid(column=3,row=2)
Button(frame_button,text="-",width=11,height=4,bd=5,command=lambda c="-":click(c)).grid(column=4,row=2)
Button(frame_button,text="1",width=11,height=4,bd=5,command=lambda c=1:click(c)).grid(column=1,row=3)
Button(frame_button,text="2",width=11,height=4,bd=5,command=lambda c=2:click(c)).grid(column=2,row=3)
Button(frame_button,text="3",width=11,height=4,bd=5,command=lambda c=3:click(c)).grid(column=3,row=3)
Button(frame_button,text="",width=11,height=4,bd=5,command=lambda c="":click(c)).grid(column=4,row=3)
Button(frame_button,text="0",width=11,height=4,bd=5,command=lambda c=0:click(c)).grid(column=1,row=4)
Button(frame_button,text="C",width=11,height=4,bd=5,command=clear).grid(column=2,row=4)
Button(frame_button,text="=",width=11,height=4,bd=5,command=equal,bg="red").grid(column=3,row=4)
Button(frame_button,text="/",width=11,height=4,bd=5,command=lambda c="/":click(c)).grid(column=4,row=4)
window.mainloop()
import tkinter
from tkinter import Tk
from tkinter import messagebox
calculate = tkinter.Tk()
calculate.title('bezminabadi calculator')
calculate.geometry('300x250')
def jaam ():
try:
entry1 = float(num1.get())
entry2 = float(num2.get())
result = entry1 + entry2
result_variation.set(f"نتیجه: {result}")
except:
messagebox.showerror('لطفا عدد معتبر وارد کنین.')
def minus():
try:
entry1 = float(num1.get())
entry2 = float(num2.get())
result = entry1 - entry2
result_variation.set(f"نتیجه: {result}")
except:
messagebox.showerror('خطا؛ لطفا عدد معتبر وارد کنین.')
def zarb():
try:
entry1 = float(num1.get())
entry2 = float(num2.get())
result = entry1 * entry2
result_variation.set(f"نتیجه: {result}")
except:
messagebox.showerror('خطا؛ لطفا عدد معتبر وارد کنین.')
def devide():
try:
entry1 = float(num1.get())
entry2 = float(num2.get())
if entry2 == 0 :
messagebox.showerror('تقسیم بر 0 مجاز نیس.')
else:
result = entry1 / entry2
result_variation.set(f"نتیجه: {result}")
except:
messagebox.showerror('خطا؛ لطفا عدد معتبر وارد کنین.')
label1 = tkinter.Label(calculate, text="عدد اول:")
label2 = tkinter.Label(calculate, text="عدد دوم:")
label1.pack()
label2.pack()
num1 = tkinter.Entry(calculate, width = 30)
num2 = tkinter.Entry(calculate, width = 30)
num1.pack()
num2.pack()
result_variation = tkinter.StringVar()
result_variation.set("نتیجه: ")
result_label = tkinter.Label(calculate, textvariable=result_variation, fg="blue")
result_label.pack()
in1 = tkinter.Button(text = 'جمع' , command = jaam)
in1.pack()
in2 = tkinter.Button(text = 'تفریق' , command = minus)
in2.pack()
in3 = tkinter.Button(text = 'ضرب' , command = zarb)
in3.pack()
in4 = tkinter.Button(text = 'تقسیم' ,command = devide)
in4.pack()
num1.focus()
tkinter.mainloop()
# Graphing calculator
import customtkinter as ctk
ctk.set_appearance_mode("light")
ctk.set_default_color_theme("blue")
window = ctk.CTk()
window.title("Graphic Calculator")
window.geometry("380x500")
window.resizable(False, False)
font_label = ("Segoe UI", 13)
font_entry = ("Segoe UI", 14)
def on_focus_in(event, entry):
entry.configure(border_color="#e28e4a")
def on_focus_out(event, entry):
current = ctk.get_appearance_mode()
if current == "Dark":
entry.configure(border_color="#555555")
else:
entry.configure(border_color="#d0d0d0")
def calculate(operation):
try:
num1 = float(entry1.get())
num2 = float(entry2.get())
if operation == "+":
result = num1 + num2
elif operation == "-":
result = num1 - num2
elif operation == "*":
result = num1 * num2
elif operation == "/":
if num2 == 0:
result_label.configure(text="Error: Division by zero")
return
result = num1 / num2
if result == int(result):
result_label.configure(text=f"Result: {int(result)}")
else:
result_label.configure(text=f"Result: {result}")
except ValueError:
result_label.configure(text="Error: Please enter valid numbers")
def reset():
entry1.delete(0, "end")
entry2.delete(0, "end")
result_label.configure(text="Result: —")
def toggle_mode():
current = ctk.get_appearance_mode()
if current == "Light":
ctk.set_appearance_mode("dark")
mode_btn.configure(text="Light",
fg_color="#3498db",
hover_color="#f1c40f",
text_color="#ffffff")
entry1.configure(fg_color="#2b2b2b", border_color="#555555", text_color="#ffffff")
entry2.configure(fg_color="#2b2b2b", border_color="#555555", text_color="#ffffff")
else:
ctk.set_appearance_mode("light")
mode_btn.configure(text="Dark",
fg_color="#f1c40f",
hover_color="#3498db",
text_color="#222222")
entry1.configure(fg_color="#ffffff", border_color="#d0d0d0", text_color="#222222")
entry2.configure(fg_color="#ffffff", border_color="#d0d0d0", text_color="#222222")
mode_btn = ctk.CTkButton(window, text="Dark",
width=70, height=28,
font=("Segoe UI", 12),
corner_radius=8,
fg_color="#f1c40f",
hover_color="#3498db",
text_color="#222222",
command=toggle_mode)
mode_btn.place(relx=0.97, rely=0.02, anchor="ne")
label1 = ctk.CTkLabel(window, text="First Number", font=font_label)
label1.pack(pady=(45, 6))
entry1 = ctk.CTkEntry(window,
width=260,
height=40,
font=font_entry,
corner_radius=12,
border_width=2,
fg_color="#ffffff",
border_color="#d0d0d0",
text_color="#222222")
entry1.pack()
entry1.bind("<FocusIn>", lambda e: on_focus_in(e, entry1))
entry1.bind("<FocusOut>", lambda e: on_focus_out(e, entry1))
label2 = ctk.CTkLabel(window, text="Second Number", font=font_label)
label2.pack(pady=(18, 6))
entry2 = ctk.CTkEntry(window,
width=260,
height=40,
font=font_entry,
corner_radius=12,
border_width=2,
fg_color="#ffffff",
border_color="#d0d0d0",
text_color="#222222")
entry2.pack()
entry2.bind("<FocusIn>", lambda e: on_focus_in(e, entry2))
entry2.bind("<FocusOut>", lambda e: on_focus_out(e, entry2))
result_label = ctk.CTkLabel(window, text="Result: —", font=("Segoe UI", 16))
result_label.pack(pady=(25, 5))
button_frame = ctk.CTkFrame(window, fg_color="transparent")
button_frame.pack(pady=25)
btn_font = ("Segoe UI", 18, "bold")
btn_add = ctk.CTkButton(button_frame, text="+",
width=60, height=45,
font=btn_font,
corner_radius=12,
fg_color="#e74c3c",
hover_color="#c0392b",
command=lambda: calculate("+"))
btn_add.grid(row=0, column=0, padx=8)
btn_sub = ctk.CTkButton(button_frame, text="−",
width=60, height=45,
font=btn_font,
corner_radius=12,
fg_color="#e67e22",
hover_color="#d35400",
command=lambda: calculate("-"))
btn_sub.grid(row=0, column=1, padx=8)
btn_mul = ctk.CTkButton(button_frame, text="×",
width=60, height=45,
font=btn_font,
corner_radius=12,
fg_color="#f1c40f",
hover_color="#f39c12",
text_color="#222222",
command=lambda: calculate("*"))
btn_mul.grid(row=0, column=2, padx=8)
btn_div = ctk.CTkButton(button_frame, text="÷",
width=60, height=45,
font=btn_font,
corner_radius=12,
fg_color="#9b59b6",
hover_color="#8e44ad",
command=lambda: calculate("/"))
btn_div.grid(row=0, column=3, padx=8)
btn_reset = ctk.CTkButton(window, text="Reset",
width=140, height=40,
font=("Segoe UI", 14),
corner_radius=12,
fg_color="#7f8c8d",
hover_color="#636e72",
command=reset)
btn_reset.pack(pady=10)
window.mainloop()
import tkinter as tk
from tkinter import messagebox
def add():
try:
num1 = float(entry1.get())
num2 = float(entry2.get())
result = num1 + num2
label_result.config(text=f"نتیجه: {result}")
except ValueError:
messagebox.showerror("خطا", "لطفاً اعداد صحیح وارد کنید.")
def subtract():
try:
num1 = float(entry1.get())
num2 = float(entry2.get())
result = num1 - num2
label_result.config(text=f"نتیجه: {result}")
except ValueError:
messagebox.showerror("خطا", "لطفاً اعداد صحیح وارد کنید.")
def multiply():
try:
num1 = float(entry1.get())
num2 = float(entry2.get())
result = num1 * num2
label_result.config(text=f"نتیجه: {result}")
except ValueError:
messagebox.showerror("خطا", "لطفاً اعداد صحیح وارد کنید.")
def divide():
try:
num1 = float(entry1.get())
num2 = float(entry2.get())
if num2 == 0:
raise ZeroDivisionError
result = num1 / num2
label_result.config(text=f"نتیجه: {result}")
except ValueError:
messagebox.showerror("خطا", "لطفاً اعداد صحیح وارد کنید.")
except ZeroDivisionError:
messagebox.showerror("خطا", "تقسیم بر صفر امکانپذیر نیست.")
# ایجاد پنجره اصلی
root = tk.Tk()
root.title("ماشین حساب ساده")
# ایجاد فیلدهای ورودی
entry1 = tk.Entry(root)
entry1.pack(pady=10)
entry2 = tk.Entry(root)
entry2.pack(pady=10)
# ایجاد دکمهها
btn_add = tk.Button(root, text="جمع", command=add)
btn_add.pack(pady=5)
btn_subtract = tk.Button(root, text="تفریق", command=subtract)
btn_subtract.pack(pady=5)
btn_multiply = tk.Button(root, text="ضرب", command=multiply)
btn_multiply.pack(pady=5)
btn_divide = tk.Button(root, text="تقسیم", command=divide)
btn_divide.pack(pady=5)
# برچسب برای نمایش نتیجه
label_result = tk.Label(root, text="نتیجه: ")
label_result.pack(pady=20)
# اجرای حلقه اصلی
root.mainloop()
جوابت را با Markdown بنویس و ثبت کن
برای استفاده از این بخش باید وارد حساب کاربریت بشی
ورود/ثبت نامتوضیح کوتاهی بنویسید تا تیم بررسی کند.