সপ্তাহ ৮: গ্রাফিক্যাল ক্যালকুলেটর অ্যাপ (Project: GUI Calculator)

Blog / সপ্তাহ ৮: গ্রাফিক্যাল ক্যালকুলেটর অ্যাপ (Project: GUI Calculator)

সপ্তাহ ৮: গ্রাফিক্যাল ক্যালকুলেটর অ্যাপ (Project: GUI Calculator) Detail Page

সপ্তাহ ৮: গ্রাফিক্যাল ক্যালকুলেটর অ্যাপ (Project: GUI Calculator)

সপ্তাহ ৮: গ্রাফিক্যাল ক্যালকুলেটর অ্যাপ (Project: GUI Calculator)

আমরা এতদিনে পাইথনের অবজেক্ট, ফাইল হ্যান্ডলিং, এপিআই এবং উইন্ডো-বাটন তৈরি করা শিখে গেছি। এবার সময় এসেছে এই জ্ঞানকে একসাথে কাজে লাগিয়ে এমন কিছু তৈরি করার, যা আমরা প্রতিদিন আমাদের হোমওয়ার্ক বা হিসাব-নিকাশে ব্যবহার করতে পারি।

আজকে আমরা tkinter ব্যবহার করে একটি সুন্দর ক্যালকুলেটর ইন্টারফেস বানাবো, যেখানে সংখ্যা ইনপুট দেওয়ার জন্য বক্স থাকবে এবং যোগ, বিয়োগ, গুণ, ভাগের আলাদা আলাদা বাটন থাকবে!

🏗️ আমাদের ক্যালকুলেটরের ডিজাইন

আমাদের অ্যাপটি দেখতে কেমন হবে, তার একটি ছোট্ট ম্যাপ করে নিই:

  1. দুটি ইনপুট ফিল্ড (Entry Field): যেখানে ইউজার দুটি সংখ্যা টাইপ করবে।
  2. অপারেশন বাটন (Buttons): +, −, ∗, / চিহ্নের বাটন।
  3. ফলাফল স্ক্রিন (Label): যেখানে হিসাবের ফাইনাল রেজাল্ট ভেসে উঠবে।

🎮 আজকের গ্র্যান্ড কোডিং প্রজেক্ট: স্মার্ট ক্যালকুলেটর

নিচের কোডটি তোমার এডিটরে কপি করো এবং রান করে ম্যাজিক দেখো:

Python

import tkinter as tk

# ১. মূল উইন্ডো সেটআপ
window = tk.Tk()
window.title("আমার স্মার্ট ক্যালকুলেটর 🧮")
window.geometry("350x400")
window.configure(bg="#E6E6FA") # হালকা ল্যাভেন্ডার ব্যাকগ্রাউন্ড

# ২. হিসাব করার জন্য ম্যাজিক ফাংশনসমূহ
def calculate(operation):
    try:
        # ইনপুট বক্স থেকে সংখ্যা দুটি নেওয়া এবং ফ্লোটে রূপান্তর করা
        num1 = float(entry_num1.get())
        num2 = float(entry_num2.get())
        
        if operation == 'add':
            result = num1 + num2
            symbol = "+"
        elif operation == 'sub':
            result = num1 - num2
            symbol = "-"
        elif operation == 'mul':
            result = num1 * num2
            symbol = "×"
        elif operation == 'div':
            if num2 == 0:
                result_label.config(text="❌ ০ দিয়ে ভাগ করা সম্ভব নয়!", fg="red")
                return
            result = num1 / num2
            symbol = "÷"
            
        # ফলাফল স্ক্রিনে দেখানো
        result_label.config(text=f"ফলাফল: {num1} {symbol} {num2} = {result}", fg="green")
        
    except ValueError:
        result_label.config(text="⚠️ দয়া করে সঠিক সংখ্যা টাইপ করো!", fg="red")

# ৩. ইন্টারফেস বা ডিজাইন তৈরি করা
# শিরোনাম লেবেল
title_label = tk.Label(window, text="ক্ষুদে গণিতবিদদের ক্যালকুলেটর", font=("Arial", 14, "bold"), bg="#E6E6FA", fg="#4B0082")
title_label.pack(pady=15)

# প্রথম সংখ্যার ইনপুট বক্স
lbl1 = tk.Label(window, text="প্রথম সংখ্যাটি লেখো:", bg="#E6E6FA", font=("Arial", 10))
lbl1.pack()
entry_num1 = tk.Entry(window, font=("Arial", 12), justify="center")
entry_num1.pack(pady=5)

# দ্বিতীয় সংখ্যার ইনপুট বক্স
lbl2 = tk.Label(window, text="দ্বিতীয় সংখ্যাটি লেখো:", bg="#E6E6FA", font=("Arial", 10))
lbl2.pack()
entry_num2 = tk.Entry(window, font=("Arial", 12), justify="center")
entry_num2.pack(pady=5)

# ৪. বাটনগুলোর জন্য একটি ফ্রেম বা বক্স তৈরি
button_frame = tk.Frame(window, bg="#E6E6FA")
button_frame.pack(pady=20)

# অপারেশন বাটনসমূহ তৈরি ও পজিশন সেট করা (Grid Layout)
btn_add = tk.Button(button_frame, text="➕ যোগ", width=8, command=lambda: calculate('add'), bg="#98FB98", font=("Arial", 10, "bold"))
btn_add.grid(row=0, column=0, padx=5, pady=5)

btn_sub = tk.Button(button_frame, text="➖ বিয়োগ", width=8, command=lambda: calculate('sub'), bg="#FFB6C1", font=("Arial", 10, "bold"))
btn_sub.grid(row=0, column=1, padx=5, pady=5)

btn_mul = tk.Button(button_frame, text="✖️ গুণ", width=8, command=lambda: calculate('mul'), bg="#FFE4B5", font=("Arial", 10, "bold"))
btn_mul.grid(row=1, column=0, padx=5, pady=5)

btn_div = tk.Button(button_frame, text="➗ ভাগ", width=8, command=lambda: calculate('div'), bg="#AFEEEE", font=("Arial", 10, "bold"))
btn_div.grid(row=1, column=1, padx=5, pady=5)

# ৫. ফলাফল দেখানোর লেবেল
result_label = tk.Label(window, text="ফলাফল দেখার জন্য হিসাব করো", font=("Arial", 11, "bold"), bg="#E6E6FA", fg="#333333")
result_label.pack(pady=20)

# লুপ চালু করা
window.mainloop()

🧠 সমাপনী চ্যালেঞ্জ (The Ultimate Challenge)

চ্যালেঞ্জ: অভিনন্দন! তুমি ৮ সপ্তাহের সফল পাইথন ইন্টারমিডিয়েট কোর্স শেষ করে ফেলেছ! আজকের শেষ চ্যালেঞ্জ হলো—ক্যালকুলেটরে ১০÷০ দিয়ে দেখো আমাদের দেওয়া এরর মেসেজটি (“০ দিয়ে ভাগ করা সম্ভব নয়”) দেখায় কিনা। এরপর অ্যাপটি নিজের মতো করে টেস্ট করে তোমার কোডিং জার্নির অভিজ্ঞতা আমাদের কমেন্টে জানাও!

🎉 অভিনন্দন! ক্ষুদে কোডারদের জন্য ৮ সপ্তাহের পাইথন মাস্টার্স সিরিজের সবকটি পর্ব ও ফিচার ইমেজ সাফল্যের সাথে সম্পূর্ণ হলো।

Leave a Reply

Welcome to To Learn Team, a dynamic educational platform where knowledge meets collaboration. Designed for students, educators, and lifelong learners, we provide a curated hub of interactive study groups, expert tutorials, and comprehensive resources across diverse subjects. We believe that learning is most powerful when done together. By uniting a global community, we transform curiosity into confidence and individual aspirations into shared achievements. Join the To Learn Team today—elevate your intellect and grow with us!

Get In Touch

Address

Dhaka, Bangladesh

Email

abir43tee@gmail.com

Phone

+880 1711427737

Quick Search