Tkinter مكتبة بايثون شائعة لإنشاء واجهات المستخدم الرسومية (GUIs). من المهام الشائعة إضافة زر يسمح للمستخدمين بإغلاق النافذة بشكل نظيف. تستعرض هذه المقالة عدة طرق لتحقيق ذلك، مع تسليط الضوء على اختلافاتها والتوصية بأفضل الممارسات.
محتويات
استخدام طريقة destroy()
النهج الأكثر شيوعًا وتوصيةً يستخدم طريقة destroy()
. ترتبط هذه الطريقة بكائن النافذة الرئيسية (عادةً ما يُسمى root
) وتُغلق نافذة Tkinter بشكل نظيف، مُحررة الموارد المُرتبطة بها.
import tkinter as tk
root = tk.Tk()
root.title("مثال إغلاق النافذة")
def close_window():
root.destroy()
button = tk.Button(root, text="إغلاق النافذة", command=close_window)
button.pack(pady=20)
root.mainloop()
يقوم هذا الكود بتعريف دالة close_window()
التي تستدعي root.destroy()
. ثم يتم ربط هذه الدالة بسمة command
الخاصة بالزر. يؤدي النقر على الزر إلى تنفيذ close_window()
، مما يؤدي إلى إغلاق النافذة.
استدعاء destroy()
مباشرة
في التطبيقات الأبسط، يمكنك تعيين root.destroy
مباشرةً إلى سمة command
الخاصة بالزر، مما يلغي الحاجة إلى دالة منفصلة:
import tkinter as tk
root = tk.Tk()
root.title("مثال إغلاق النافذة")
button = tk.Button(root, text="إغلاق النافذة", command=root.destroy)
button.pack(pady=20)
root.mainloop()
هذا أكثر إيجازًا، لكنه قد يقلل من القابلية للقراءة في المشاريع الأكبر.
استخدام طريقة quit()
تختلف طريقة quit()
عن destroy()
. quit()
تُوقف حلقة الأحداث الرئيسية فقط، بينما destroy()
تدمر النافذة وواجهاتها فعليًا. quit()
مفيدة في السيناريوهات الأكثر تعقيدًا حيث تحتاج إلى تحكم أدق في عملية الإغلاق، مثل تنظيف الموارد قبل تدمير النافذة. ومع ذلك، بالنسبة لإغلاق النافذة البسيط، يُفضل استخدام destroy()
. قد يؤدي الاستخدام غير الصحيح لـ quit()
إلى ترك عمليات متروكة.
import tkinter as tk
root = tk.Tk()
root.title("مثال إغلاق النافذة")
def close_window():
root.quit()
button = tk.Button(root, text="إغلاق النافذة", command=close_window)
button.pack(pady=20)
root.mainloop()
يُوضح هذا root.quit()
، لكن root.destroy()
تظل الخيار الأكثر أمانًا ونظافة في معظم الحالات.
النهج المُوصى به
على الرغم من وجود عدة طرق، فإن root.destroy()
توفر الطريقة الأكثر مباشرةً وموثوقية لإغلاق نافذة Tkinter بزر في معظم التطبيقات. تُعد بساطتها وسلوكها الواضح الخيار المُفضل ما لم يتطلب تطبيقك التحكم الأكثر دقة الذي تقدمه root.quit()
.