بناء تطبيق Tkinter مع شريط حالة وجدول المحتويات
يوضح هذا البرنامج التعليمي كيفية إنشاء تطبيق Tkinter بسيط ولكنه وظيفي يتضمن شريط حالة وجدول محتوى مُحدّث ديناميكيًا. هذا مفيد بشكل خاص للتطبيقات التي تحتوي على أقسام أو ميزات متعددة، مما يعزز تصفح المستخدم وتجربته.
I. إعداد الأساس
نبدأ باستيراد مكتبة tkinter
وإنشاء نافذة التطبيق الرئيسية:
import tkinter as tk
root = tk.Tk()
root.title("Tkinter Application with Status Bar and Table of Contents")
# إطار المحتوى الرئيسي
content_frame = tk.Frame(root)
content_frame.pack(expand=True, fill="both")
# شريط الحالة
status_bar = tk.Label(root, text="", bd=1, relief="sunken", anchor="w")
status_bar.pack(side="bottom", fill="x")
هذا ينشئ النافذة الرئيسية وإطارًا لحمل محتوى التطبيق. يتم إضافة شريط حالة في الأسفل لعرض الرسائل.
II. تنفيذ جدول المحتويات
تُستخدم واجهة Listbox
كجدول محتوى لدينا. وهي فارغة في البداية، ويتم ملؤها عند إضافة الأقسام:
# جدول المحتويات
toc_listbox = tk.Listbox(content_frame, width=20)
toc_listbox.pack(side="left", fill="y")
هذا يضع مربع قائمة على يسار إطار المحتوى، جاهزًا لعرض عناوين الأقسام.
III. التحديثات الديناميكية: شريط الحالة وجدول المحتويات
تكمن الوظيفة الأساسية في تحديث كل من شريط الحالة وجدول المحتويات. تقوم الوظيفة التالية بمعالجة هذا:
def add_section(section_title):
"""يضيف قسمًا إلى التطبيق، ويُحدّث واجهة المستخدم."""
toc_listbox.insert(tk.END, section_title)
status_bar.config(text=f"Added section: {section_title}")
# مثال على الاستخدام
add_section("مقدمة")
add_section("الميزات الأساسية")
add_section("الاستخدام المتقدم")
add_section("استكشاف الأخطاء وإصلاحها")
تقوم هذه الوظيفة بإضافة عنوان القسم إلى مربع القائمة وتحديث شريط الحالة ليعكس الإجراء. تُظهر المكالمات المثال استخدامها.
IV. شفرة التطبيق الكاملة
فيما يلي الشفرة الكاملة القابلة للتشغيل:
import tkinter as tk
root = tk.Tk()
root.title("Tkinter Application with Status Bar and Table of Contents")
content_frame = tk.Frame(root)
content_frame.pack(expand=True, fill="both")
status_bar = tk.Label(root, text="", bd=1, relief="sunken", anchor="w")
status_bar.pack(side="bottom", fill="x")
toc_listbox = tk.Listbox(content_frame, width=20)
toc_listbox.pack(side="left", fill="y")
def add_section(section_title):
toc_listbox.insert(tk.END, section_title)
status_bar.config(text=f"Added section: {section_title}")
add_section("مقدمة")
add_section("الميزات الأساسية")
add_section("الاستخدام المتقدم")
add_section("استكشاف الأخطاء وإصلاحها")
root.mainloop()
هذه الشفرة تُنشئ تطبيقًا وظيفيًا بالكامل. من خلال التوسع في هذا الأساس، يمكنك إضافة ميزات مثل عناصر مربع القائمة القابلة للنقر للتنقل إلى أقسام محددة داخل تطبيقك، مما يجعله أكثر سهولة في الاستخدام.