🎯 سنتعلم اليوم استخدام عنصر Text
في Tkinter لإدخال أو عرض نصوص متعددة الأسطر (Multi-line Text).
🧱 ما هو Text؟
عنصر واجهة رسومية يشبه Entry
لكنه يُستخدم للنصوص الطويلة أو المتعددة الأسطر، مثل:
- التعليقات
- وصف المنتج
- الملاحظات
📌 الصيغة الأساسية:
text = tk.Text(window, height=5, width=40)
الخاصية |
الوصف |
height |
عدد الأسطر الظاهرة |
width |
عدد الحروف في السطر تقريبًا |
insert() |
لإضافة نص داخل المربع |
get(start, end) |
للحصول على النص بين موضعين |
delete(start, end) |
لحذف النص بين موضعين |
✅ مثال عملي:
import tkinter as tk
def عرض_النص():
المحتوى = مربع_النص.get("1.0", tk.END)
label.config(text=f"📋 المحتوى:\n{المحتوى.strip()}")
# النافذة
window = tk.Tk()
window.title("مثال على Text")
window.geometry("400x300")
# مربع النص
مربع_النص = tk.Text(window, height=6, width=40)
مربع_النص.pack(pady=10)
# زر عرض النص
tk.Button(window, text="عرض النص", command=عرض_النص).pack()
# لعرض النتيجة
label = tk.Label(window, text="", justify="left")
label.pack(pady=10)
window.mainloop()
💡 ملاحظات:
الدالة أو القيمة |
الغرض |
"1.0" |
تعني: السطر 1، الحرف 0 (أول السطر) |
tk.END |
تعني: إلى نهاية النص |
.strip() |
إزالة الفراغات والأسطر الفارغة |
justify="left" |
محاذاة النص المعروض جهة اليسار |
🧾 ملخص:
Text
مناسب جدًا للنصوص الكبيرة.
- يمكنك التحكم في الحجم باستخدام
width
و height
.
- استخدم
get()
للحصول على النص، وinsert()
لإدخاله، وdelete()
لحذفه.
✅ التمرين: "مفكرة بسيطة - Simple Notepad"
🎯 المطلوب:
- أنشئ نافذة بها مربع
Text
متعدد الأسطر لكتابة الملاحظات.
- أضف زرًا عند الضغط عليه يعرض محتوى الملاحظة أسفل المربع.
- إذا كان مربع النص فارغًا، يظهر تنبيه بأن المربع فارغ.
🧾 الحل الكامل:
import tkinter as tk
def عرض_الملاحظة():
النص = المفكرة.get("1.0", tk.END).strip()
if النص:
النتيجة.config(text=f"📝 ملاحظتك:\n{text}")
else:
النتيجة.config(text="⚠️ لم يتم إدخال أي ملاحظة.")
# إنشاء النافذة
window = tk.Tk()
window.title("مفكرة بسيطة")
window.geometry("400x300")
# عنوان
tk.Label(window, text="اكتب ملاحظتك:", font=("Arial", 12)).pack(pady=5)
# مربع النص المتعدد الأسطر
المفكرة = tk.Text(window, height=6, width=45)
المفكرة.pack(pady=5)
# زر لعرض النص
tk.Button(window, text="عرض الملاحظة", command=عرض_الملاحظة).pack(pady=5)
# تسمية لعرض النتيجة
النتيجة = tk.Label(window, text="", justify="left", font=("Arial", 11))
النتيجة.pack(pady=10)
# تشغيل النافذة
window.mainloop()
💡 ملاحظات تقنية:
العنصر |
الغرض |
.get("1.0", tk.END) |
لقراءة كل النص الموجود في مربع Text |
.strip() |
لحذف الفراغات من البداية والنهاية |
justify="left" |
لمحاذاة المخرجات الطويلة بشكل أنيق لليسار |
if النص: |
للتحقق ما إذا تم إدخال محتوى أم لا |