الدليل الشامل لـ Tkinter - مكتبة إنشاء واجهات المستخدم الرسومية في بايثون
Tkinter (Tk interface) — هي المكتبة القياسية لإنشاء واجهات المستخدم الرسومية (GUI) في لغة بايثون. الاسم مشتق من Tk — وهي مجموعة أدوات GUI متعددة المنصات، تم تطويرها أصلاً للغة Tcl. Tkinter هي الواجهة البرمجية (binding) لبايثون مع Tk، وهي مضمنة في التوزيعة القياسية لبايثون منذ الإصدار 3.1، مما يجعلها الأداة الأكثر سهولة لبناء تطبيقات النوافذ.
تدعم المكتبة جميع أنظمة التشغيل الرئيسية: Windows وLinux وmacOS، مما يضمن تشغيل التطبيقات على منصات متعددة. سهولة التعلم والاعتماديات البسيطة تجعل Tkinter خياراً ممتازاً للمطورين المبتدئين، والمشاريع التعليمية، وبناء تطبيقات سطح المكتب الصغيرة.
تاريخ Tkinter وهيكله
تم إنشاء Tkinter في أوائل التسعينيات كغلاف لبايثون لمجموعة أدوات Tk GUI. أما Tk فقد طورها جون أوسترهوت في جامعة كاليفورنيا، بيركلي. على مدى أكثر من 30 عاماً، مرت المكتبة بتطور كبير لكنها حافظت على فلسفتها القائمة على البساطة والموثوقية.
يعتمد هيكل Tkinter على البرمجة الموجهة بالأحداث. العنصر الأساسي هو حلقة معالجة الأحداث الرئيسية (event loop)، التي تنتظر إجراءات المستخدم وتستجيب لها باستدعاء دوال المعالجة المناسبة.
التثبيت والتشغيل الأول
التحقق من وجود Tkinter
Tkinter مضمنة في المكتبة القياسية لبايثون ولا تتطلب تثبيتاً منفصلاً عادةً. للتحقق من توفرها، نفّذ الأمر التالي:
python -c "import tkinter; print('Tkinter متاح')"
التثبيت على أنظمة التشغيل المختلفة
Windows: يتم تثبيت Tkinter تلقائياً مع بايثون.
macOS: مضمنة في التوزيعة القياسية لبايثون.
Linux (Ubuntu/Debian):
sudo apt-get install python3-tk
Linux (CentOS/RHEL):
sudo yum install tkinter
# أو للإصدارات الأحدث
sudo dnf install python3-tkinter
إنشاء أول تطبيق
import tkinter as tk
# إنشاء النافذة الرئيسية
window = tk.Tk()
window.title("تطبيقي الأول")
window.geometry("400x300")
window.resizable(True, True)
# تشغيل الحلقة الرئيسية
window.mainloop()
المكونات الأساسية في Tkinter
النافذة الرئيسية (Root Window)
النافذة الرئيسية هي العنصر الجذري لأي تطبيق Tkinter. يجب وضع جميع الأدوات الأخرى داخلها أو داخل نوافذها الفرعية.
import tkinter as tk
root = tk.Tk()
root.title("عنوان النافذة")
root.geometry("800x600+100+50") # العرض × الارتفاع + الإزاحة_س + الإزاحة_ص
root.minsize(300, 200) # الحد الأدنى للحجم
root.maxsize(1200, 800) # الحد الأقصى للحجم
root.configure(bg='lightblue') # لون الخلفية
الأدوات الرئيسية واستخداماتها
التسمية (Label)
تُستخدم Label لعرض النصوص أو الصور التي لا يمكن للمستخدم تعديلها.
label = tk.Label(
window,
text="تسمية معلوماتية",
font=("Arial", 14),
fg="blue",
bg="white",
anchor="center"
)
label.pack(pady=10)
الزر (Button)
الزر هو عنصر تفاعلي لتنفيذ الإجراءات.
def button_click():
print("تم الضغط على الزر!")
button = tk.Button(
window,
text="اضغطني",
command=button_click,
font=("Arial", 12),
bg="green",
fg="white",
width=15,
height=2
)
button.pack(pady=5)
حقل الإدخال (Entry)
يُستخدم Entry لإدخال النص من قبل المستخدم.