نتعلم اليوم كيفية:
- إنشاء واجهة تحتوي على تبويبات Tabs مثل البرامج التي تعرض محتويات متعددة في نوافذ منفصلة.
- استخدام
ttk.Notebookلتقسيم المحتوى إلى أقسام متعددة داخل نفس النافذة.
✅ ما هو ttk.Notebook؟
هو عنصر واجهة (Widget) من مكتبة ttk (Theme Tkinter) يُستخدم لإنشاء تبويبات، حيث كل تبويب يمكن أن يحتوي على محتوى مختلف مثل: نماذج، جداول، إعدادات، إلخ.
✅ مثال عملي على إنشاء 3 تبويبات:
import tkinter as tk
from tkinter import ttk
# إنشاء النافذة
window = tk.Tk()
window.title("مثال على التبويبات")
window.geometry("400x300")
# إنشاء عنصر التبويبات
tabs = ttk.Notebook(window)
# إنشاء الإطارات المرتبطة بكل تبويب
tab1 = tk.Frame(tabs)
tab2 = tk.Frame(tabs)
tab3 = tk.Frame(tabs)
# ربط الإطارات بالتبويبات
tabs.add(tab1, text="الرئيسية")
tabs.add(tab2, text="الإعدادات")
tabs.add(tab3, text="حول")
# عرض التبويبات
tabs.pack(expand=1, fill="both")
# محتوى التبويب 1
tk.Label(tab1, text="مرحبًا بك في الصفحة الرئيسية!", font=("Arial", 12)).pack(pady=20)
# محتوى التبويب 2
tk.Label(tab2, text="إعدادات المستخدم", font=("Arial", 12)).pack(pady=20)
tk.Checkbutton(tab2, text="تفعيل الإشعارات").pack()
tk.Checkbutton(tab2, text="الوضع الليلي").pack()
# محتوى التبويب 3
tk.Label(tab3, text="إصدار التطبيق: 1.0\nالمطور: تامر", font=("Arial", 11)).pack(pady=20)
window.mainloop()
🧠 ملاحظات مهمة:
| العنصر | الوظيفة |
|---|---|
ttk.Notebook |
العنصر الأساسي لإنشاء التبويبات |
add(frame, text="...") |
لإضافة تبويب جديد مع تسميته |
pack(expand=1, fill="both") |
لعرض التبويبات وتوسعتها مع النافذة |
🧩 استخدامات عملية:
- صفحات الإعدادات.
- تقسيم أدوات مختلفة في نفس البرنامج.
- عرض تقارير أو بيانات متعددة في أماكن منفصلة.
✅ التمرين: إنشاء واجهة تطبيق تحتوي على 3 تبويبات
🎯 المطلوب:
أن تنشئ واجهة فيها:
- تبويب 1: "الملف الشخصي" يحتوي على اسم المستخدم والبريد.
- تبويب 2: "الإعدادات" يحتوي على خيارات تفعيل الوضع الليلي والإشعارات.
- تبويب 3: "حول" يحتوي على معلومات عامة عن التطبيق.
✅ الحل:
import tkinter as tk
from tkinter import ttk
# إنشاء النافذة
window = tk.Tk()
window.title("تطبيق تبويبات")
window.geometry("400x300")
# إنشاء التبويبات
notebook = ttk.Notebook(window)
# الإطارات الخاصة بكل تبويب
profile_tab = tk.Frame(notebook)
settings_tab = tk.Frame(notebook)
about_tab = tk.Frame(notebook)
# ربط التبويبات
notebook.add(profile_tab, text="الملف الشخصي")
notebook.add(settings_tab, text="الإعدادات")
notebook.add(about_tab, text="حول")
notebook.pack(expand=1, fill="both")
# محتوى تبويب "الملف الشخصي"
tk.Label(profile_tab, text="اسم المستخدم:", font=("Arial", 12)).pack(pady=5)
tk.Entry(profile_tab).pack(pady=5)
tk.Label(profile_tab, text="البريد الإلكتروني:", font=("Arial", 12)).pack(pady=5)
tk.Entry(profile_tab).pack(pady=5)
# محتوى تبويب "الإعدادات"
tk.Label(settings_tab, text="خيارات:", font=("Arial", 12)).pack(pady=10)
tk.Checkbutton(settings_tab, text="تفعيل الوضع الليلي").pack()
tk.Checkbutton(settings_tab, text="تفعيل الإشعارات").pack()
# محتوى تبويب "حول"
tk.Label(about_tab, text="هذا التطبيق تم تطويره باستخدام Tkinter.", font=("Arial", 11)).pack(pady=20)
tk.Label(about_tab, text="النسخة: 1.0\nالمطور: تامر", font=("Arial", 10)).pack()
window.mainloop()
✅ المخرجات:
عند تشغيل البرنامج، ستحصل على واجهة بتصميم احترافي مقسم إلى:
- 📁 تبويب أول فيه حقول الاسم والبريد.
- ⚙️ تبويب ثاني لتفعيل بعض الخيارات.
- ℹ️ تبويب ثالث يحتوي على معلومات عامة.

