🎓 الدرس 31 من Tkinter: تغيير حجم النوافذ والتحكم في الثبات (Resizable)

نتعلم اليوم:

  • تمنع المستخدم من تغيير حجم نافذة البرنامج.
  • تسمح بتغيير الحجم في اتجاه معين فقط.
  • تحدد الحد الأدنى أو الأقصى لحجم النافذة.
🎓 الدرس 31 من Tkinter: تغيير حجم النوافذ والتحكم في الثبات (Resizable)

🧱 الدوال المستخدمة:

الوظيفة الكود
منع تغيير الحجم window.resizable(False, False)
السماح بعرض فقط window.resizable(True, False)
السماح بالطول فقط window.resizable(False, True)
تحديد الحد الأدنى للحجم window.minsize(العرض, الطول)
تحديد الحد الأقصى للحجم window.maxsize(العرض, الطول)

✅ مثال تطبيقي:

import tkinter as tk

# إنشاء النافذة
window = tk.Tk()
window.title("نافذة ثابتة الحجم")
window.geometry("400x300")

# منع المستخدم من تغيير الحجم
window.resizable(False, False)

# رسالة داخل النافذة
tk.Label(window, text="لا يمكنك تغيير حجم هذه النافذة", font=("Arial", 12)).pack(pady=30)

window.mainloop()

✅ مثال آخر: السماح بعرض فقط، وتحديد الحد الأدنى والأقصى

import tkinter as tk

window = tk.Tk()
window.title("نافذة بحجم متغير جزئيًا")
window.geometry("500x400")

# السماح بتغيير العرض فقط
window.resizable(True, False)

# تعيين حدود الحجم
window.minsize(300, 300)
window.maxsize(800, 500)

tk.Label(window, text="يمكنك تغيير العرض فقط", font=("Arial", 12)).pack(pady=40)

window.mainloop()

💡 متى تستخدم هذه الخصائص؟

الحالة الإجراء المناسب
تصميم واجهة ثابتة 100% استخدم resizable(False, False)
حماية التخطيط من التشوه عند التكبير ضع حدود minsize() و maxsize()
السماح بتكبير العرض لعرض بيانات أكثر استخدم resizable(True, False) فقط


✅ التمرين: "نافذة إعدادات بثابتة الحجم"

🎯 المطلوب:

  1. أنشئ نافذة بعنوان "إعدادات البرنامج".
  2. ضع داخلها رسالة توضح أن هذه النافذة لا يمكن تغيير حجمها.
  3. امنع المستخدم من تغيير العرض والطول.
  4. حدّد الحد الأدنى والحد الأقصى للحجم ليكونا متماثلين (مثلاً 400x300) لضمان الثبات.

🧾 الحل الكامل:

import tkinter as tk

# إنشاء النافذة
window = tk.Tk()
window.title("إعدادات البرنامج")
window.geometry("400x300")

# جعل الحجم ثابتًا
window.resizable(False, False)

# تحديد الحد الأدنى والحد الأقصى كقيمة واحدة لضمان الثبات
window.minsize(400, 300)
window.maxsize(400, 300)

# رسالة للمستخدم
message = tk.Label(window, text="هذه النافذة ثابتة الحجم ولا يمكن تغييرها.",
                   font=("Arial", 12), fg="darkblue")
message.pack(pady=80)

window.mainloop()

✅ النتيجة المتوقعة:

  • نافذة لا يستطيع المستخدم تغيير أبعادها نهائيًا.
  • حجمها ثابت: 400 عرض × 300 طول.
  • رسالة تظهر في وسط النافذة.

إرسال تعليق

0 تعليقات