تعلم البرمجة يحتاج إلى تطبيق عملي بسيط يدمج المفاهيم الأساسية مع تجربة تفاعلية. في هذا المقال، سنشرح لك كيفية صنع آلة حاسبة بسيطة بلغة Python، مع إضافة واجهة مستخدم رسومية باستخدام مكتبة Tkinter. هذه المكتبة تسمح لك ببناء تطبيقات بواجهات تفاعلية تجعل تجربة المستخدم أسهل وأجمل، خاصة للمبتدئين.
1. الأدوات المطلوبة
- تثبيت لغة Python (يمكن تحميلها من الموقع الرسمي).
- محرر نصوص مثل VS Code أو محرر النصوص الافتراضي.
- معرفة بسيطة بأساسيات Python.
2. كتابة الكود بدون واجهة (مراجعة سريعة)
البرنامج الأساسي للآلة الحاسبة يكون على الشكل التالي:
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
if y == 0:
return "خطأ: لا يمكن القسمة على صفر"
else:
return x / y
print("اختر العملية:")
print("1. جمع")
print("2. طرح")
print("3. ضرب")
print("4. قسمة")
choice = input("أدخل رقم العملية: ")
num1 = float(input("أدخل الرقم الأول: "))
num2 = float(input("أدخل الرقم الثاني: "))
if choice == '1':
print("النتيجة:", add(num1, num2))
elif choice == '2':
print("النتيجة:", subtract(num1, num2))
elif choice == '3':
print("النتيجة:", multiply(num1, num2))
elif choice == '4':
print("النتيجة:", divide(num1, num2))
else:
print("اختيار غير صالح")
3. تطوير البرنامج بواجهة رسومية باستخدام Tkinter
الآن سنطور البرنامج ليشمل نافذة تفاعلية تقدر تضغط فيها الأزرار بدل الكتابة في الطرفية. الكود كامل كالتالي:
import tkinter as tk
def click_button(value):
current = entry.get()
entry.delete(0, tk.END)
entry.insert(0, current + value)
def clear():
entry.delete(0, tk.END)
def calculate():
try:
result = eval(entry.get())
entry.delete(0, tk.END)
entry.insert(0, str(result))
except Exception:
entry.delete(0, tk.END)
entry.insert(0, "خطأ")
root = tk.Tk()
root.title("آلة حاسبة بسيطة")
entry = tk.Entry(root, width=16, font=('Arial', 24), bd=4, relief='ridge', justify='right')
entry.grid(row=0, column=0, columnspan=4)
buttons = [
'7', '8', '9', '+',
'4', '5', '6', '-',
'1', '2', '3', '*',
'C', '0', '=', '/',
]
row = 1
col = 0
for b in buttons:
action = lambda x=b: click_button(x) if x not in ['=', 'C'] else (calculate() if x == '=' else clear())
btn = tk.Button(root, text=b, width=4, height=2, font=('Arial', 24), command=action)
btn.grid(row=row, column=col, padx=5, pady=5)
col += 1
if col > 3:
col = 0
row += 1
root.mainloop()
4. شرح الكود مع الواجهة الرسومية
- أنشأنا نافذة رئيسية باستخدام
tk.Tk(). - أضفنا خانة إدخال
Entryلعرض الأرقام والعمليات. - أنشأنا أزرار للأرقام والعمليات ووضعناها في شبكة
grid. - دوال
click_buttonلإضافة الأرقام والعمليات، وclearلمسح المحتوى، وcalculateلتنفيذ العملية الحسابية. - تعاملنا مع الأخطاء باستخدام
try-exceptلعرض رسالة خطأ عند إدخال غير صحيح.
5. تحسينات مستقبلية يمكنك إضافتها
- إضافة دعم لعمليات متقدمة مثل الأس واللوغاريتم.
- تصميم واجهة أجمل مع ألوان مختلفة وزخارف.
- إضافة سجل العمليات الحسابية (History).
- دعم لغة الواجهات (Localization) لتغيير اللغة بسهولة.
- إمكانية تصدير النتائج أو حفظها في ملف.
✅ الخاتمة
الآن لديك آلة حاسبة بسيطة تشتغل من نافذة تفاعلية، وهذا مثال عملي يجمع بين البرمجة التقليدية وتطوير الواجهات الرسومية. ابدأ بتجربة الكود، وحاول تضيف تحسينات خاصة بك لتطوير مهاراتك أكثر. تعلم البرمجة يتطلب التجربة، ولا تتردد في تعديل الكود وتجربته بنفسك.
