🎓 الدرس 15 من Tkinter: إنشاء أشرطة القوائم (Menu Bars)

تعلم كيفية إنشاء شريط قوائم علوي مثل الموجود في معظم التطبيقات (ملف، تحرير، مساعدة...) باستخدام مكتبة Tkinter.

🎓 الدرس 15 من Tkinter: إنشاء أشرطة القوائم (Menu Bars)

📌 ما هو شريط القوائم؟

هو شريط أفقي يظهر عادة في أعلى النافذة، يحتوي على قوائم منسدلة لتنفيذ أوامر مثل "فتح"، "حفظ"، "خروج"، إلخ.


🧱 الأساسيات:

🔹 لإنشاء قائمة:

menu_bar = tk.Menu(window)
window.config(menu=menu_bar)

🔹 لإضافة قائمة فرعية (مثل "ملف"):

file_menu = tk.Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="ملف", menu=file_menu)

🔹 لإضافة عناصر إلى القائمة الفرعية:

file_menu.add_command(label="فتح", command=some_function)
file_menu.add_command(label="خروج", command=window.quit)

✅ مثال عملي:

import tkinter as tk
from tkinter import messagebox

# دالة عند اختيار "عن البرنامج"
def عرض_حول():
    messagebox.showinfo("عن البرنامج", "هذا برنامج بسيط باستخدام Tkinter")

# إنشاء النافذة
window = tk.Tk()
window.title("مثال على شريط القوائم")
window.geometry("400x300")

# إنشاء شريط القوائم
menu_bar = tk.Menu(window)
window.config(menu=menu_bar)

# قائمة "ملف"
file_menu = tk.Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="ملف", menu=file_menu)
file_menu.add_command(label="خروج", command=window.quit)

# قائمة "مساعدة"
help_menu = tk.Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="مساعدة", menu=help_menu)
help_menu.add_command(label="عن البرنامج", command=عرض_حول)

window.mainloop()

✅ ما تعلمته في هذا الدرس:

العنصر الوظيفة
Menu() إنشاء قائمة جديدة.
add_cascade() ربط قائمة فرعية بالقائمة الرئيسية.
add_command() إضافة خيار للقائمة.
tearoff=0 يمنع فصل القائمة كنافذة مستقلة.


✅ التمرين التطبيقي: "قائمة بسيطة لإدارة مستند"

🎯 المطلوب:

أنشئ نافذة تحتوي على:

  • شريط قوائم فيه:
    1. قائمة "ملف" (File) تحتوي على الخيارات:
      • "جديد" → عند الضغط تظهر رسالة "ملف جديد".
      • "خروج" → يغلق التطبيق.
    2. قائمة "مساعدة" (Help) تحتوي على الخيار:
      • "عن البرنامج" → تظهر رسالة توضح أن هذا مثال تعليمي بسيط.

🧾 الكود الكامل للحل:

import tkinter as tk
from tkinter import messagebox

# إنشاء النافذة
window = tk.Tk()
window.title("تطبيق قائم على القوائم")
window.geometry("400x250")

# دوال الأوامر
def ملف_جديد():
    messagebox.showinfo("جديد", "تم فتح ملف جديد!")

def عن_البرنامج():
    messagebox.showinfo("عن البرنامج", "هذا مثال تعليمي بسيط باستخدام Tkinter.")

# إنشاء شريط القوائم
menu_bar = tk.Menu(window)
window.config(menu=menu_bar)

# قائمة ملف
file_menu = tk.Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="ملف", menu=file_menu)
file_menu.add_command(label="جديد", command=ملف_جديد)
file_menu.add_separator()
file_menu.add_command(label="خروج", command=window.quit)

# قائمة مساعدة
help_menu = tk.Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="مساعدة", menu=help_menu)
help_menu.add_command(label="عن البرنامج", command=عن_البرنامج)

# تشغيل البرنامج
window.mainloop()

💡 ما ستتعلمه من التمرين:

  • كيفية إنشاء أكثر من قائمة.
  • التعامل مع الأحداث عند الضغط على العناصر.
  • عرض رسائل باستخدام messagebox.
  • استخدام add_separator() لإضافة فاصل مرئي بين عناصر القائمة.

إرسال تعليق

0 تعليقات