Python GUI Programming

إنشاء نوافذ Tkinter ثابتة الحجم

Spread the love

توفر مكتبة Tkinter في بايثون طريقة بسيطة وقوية لإنشاء واجهات مستخدم رسومية. وبينما تقدم Tkinter مرونة في إدارة النوافذ، فإن الحفاظ على حجم نافذة ثابت أمر بالغ الأهمية لتجربة مستخدم مُحسّنة. وتُفصّل هذه المقالة كيفية إنشاء نافذة Tkinter ذات حجم ثابت، مما يضمن أن يبقى تصميم تطبيقك متوقعًا ويمنع مشاكل تغيير الحجم غير المتوقعة.

جدول المحتويات

الطريقة الأولى: استخدام resizable()

الطريقة الأكثر موثوقية لإنشاء نافذة Tkinter ذات حجم ثابت هي استخدام دالة resizable(). تتحكم هذه الدالة مباشرة في إمكانية تغيير حجم النافذة، مما يمنع المستخدمين من تغيير أبعادها. إنها طريقة مباشرة وتعمل باستمرار عبر أنظمة التشغيل المختلفة ومديري النوافذ.


import tkinter as tk

root = tk.Tk()
root.title("نافذة ذات حجم ثابت")

# منع تغيير الحجم
root.resizable(False, False)

# إضافة عناصر واجهة المستخدم هنا... مثال:
label = tk.Label(root, text="لا يمكن تغيير حجم هذه النافذة!")
label.pack(pady=20)

root.mainloop()

يقوم هذا المقطع من التعليمات البرمجية بإنشاء نافذة، وتعيين عنوانها، ثم استخدام root.resizable(False, False) لتعطيل تغيير الحجم في الاتجاهين الأفقي والرأسي. سيتم تحديد حجم النافذة بواسطة عناصر واجهة المستخدم وطريقة إدارة تصميمها (مثل pack، grid، place).

الطريقة الثانية: تحديد الهندسة (أقل موثوقية)

بدلاً من ذلك، يمكنك محاولة التحكم في حجم النافذة باستخدام دالة geometry(). يُعيّن هذا الأبعاد الأولية للنافذة. ومع ذلك، فإن هذا النهج أقل موثوقية لأن المستخدمين قد يكونون قادرين على تجاوزه اعتمادًا على إعدادات نظام التشغيل أو سلوك مدير النوافذ.


import tkinter as tk

root = tk.Tk()
root.title("نافذة ذات حجم ثابت (طريقة الهندسة)")

# محاولة تعيين الهندسة (أقل موثوقية)
root.geometry("300x200")  # العرض × الارتفاع

# إضافة عناصر واجهة المستخدم هنا... مثال:
label = tk.Label(root, text="هذه النافذة *تحاول* أن تكون ذات حجم ثابت.")
label.pack(pady=20)

root.mainloop()

يحاول هذا الرمز تعيين النافذة على عرض 300 بكسل وارتفاع 200 بكسل. بينما قد يعمل في بعض البيئات، إلا أنه ليس حلاً مضمونًا للحفاظ على حجم ثابت تمامًا.

اختيار الطريقة المناسبة

يوصى بشدة باستخدام دالة resizable(False, False) لإنشاء نوافذ Tkinter ذات حجم ثابت. فهي توفر موثوقية أفضل وتضمن سلوكًا ثابتًا عبر منصات مختلفة. يمكن استخدام دالة geometry() كنهج تكميلي، ولكن لا ينبغي الاعتماد عليها أبدًا كطريقة أساسية لفرض حجم ثابت.

تذكر استخدام مديري الهندسة المناسبين (pack، grid، place) لترتيب عناصر واجهة المستخدم الخاصة بك بكفاءة داخل أبعاد النافذة الثابتة.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *