Tkinter Tutorials

إتقان أشرطة التمرير في Tkinter

Spread the love

سيرشدك هذا البرنامج التعليمي إلى كيفية تنفيذ أشرطة التمرير في تطبيقات Tkinter الخاصة بك. تعد أشرطة التمرير أساسية للتعامل مع المحتوى الذي يتجاوز مساحة النافذة المرئية، مما يضمن تجربة مستخدم سلسة.

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

أشرطة التمرير الرأسية

تُعد أشرطة التمرير الرأسية ضرورية عندما تحتوي أدواتك، مثل Text أو Listbox أو لوحات الرسم المخصصة، على محتوى أكثر مما يمكن أن يتسع في ارتفاع النافذة. لنقم بإنشاء مثال بسيط باستخدام أداة Text:


import tkinter as tk

root = tk.Tk()
root.title("شريط تمرير رأسي Tkinter")

text_area = tk.Text(root, wrap=tk.WORD)
text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)

scrollbar = tk.Scrollbar(root, orient="vertical", command=text_area.yview)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)

text_area.config(yscrollcommand=scrollbar.set)

long_text = "هذا مثال على نص طويل لتوضيح وظيفة شريط التمرير. سيتواصل على عدة أسطر، مما يضمن ضرورة شريط التمرير. يمكنك إضافة قدر ما تريد من النص، وسيتكيف شريط التمرير تلقائيًا." * 5
text_area.insert(tk.END, long_text)

root.mainloop()

يقوم هذا الكود بإنشاء أداة Text وشريط تمرير رأسي. الأسطر الرئيسية هي:

  • command=text_area.yview: يربط حركة شريط التمرير بطريقة yview لأداة Text، للتحكم بالتمرير الرأسي.
  • yscrollcommand=scrollbar.set: يربط أحداث تمرير أداة Text بشريط التمرير، لتحديث موقعه.

أشرطة التمرير الأفقية

تُستخدم أشرطة التمرير الأفقية عندما يتجاوز عرض المحتوى عرض النافذة. التنفيذ مشابه لشريط التمرير الرأسي، لكننا نستخدم طريقة xview و orient="horizontal":


import tkinter as tk

root = tk.Tk()
root.title("شريط تمرير أفقي Tkinter")

canvas = tk.Canvas(root, width=200, height=100)
canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)

scrollbar_h = tk.Scrollbar(root, orient="horizontal", command=canvas.xview)
scrollbar_h.pack(side=tk.BOTTOM, fill=tk.X)

canvas.config(xscrollcommand=scrollbar_h.set)

canvas.create_line(0, 50, 1000, 50, width=2, fill="red")

root.mainloop()

يستخدم هذا المثال أداة Canvas. لاحظ استخدام xview بدلاً من yview، ويتم وضع شريط التمرير في الأسفل.

دمج أشرطة التمرير الأفقية والرأسية

للحصول على أقصى قدر من المرونة، يمكنك دمج كل من أشرطة التمرير الأفقية والرأسية. هذا مفيد بشكل خاص للأدوات التي تحتوي على محتوى يتجاوز عرض وارتفاع النافذة. إليك مثال باستخدام أداة Text مع كلا شريطي التمرير:


import tkinter as tk

root = tk.Tk()
root.title("أشرطة تمرير مدمجة Tkinter")

text_area = tk.Text(root, wrap=tk.WORD)
text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)

vscrollbar = tk.Scrollbar(root, orient="vertical", command=text_area.yview)
vscrollbar.pack(side=tk.RIGHT, fill=tk.Y)

hscrollbar = tk.Scrollbar(root, orient="horizontal", command=text_area.xview)
hscrollbar.pack(side=tk.BOTTOM, fill=tk.X)

text_area.config(yscrollcommand=vscrollbar.set, xscrollcommand=hscrollbar.set)

long_text = "هذا مثال على نص طويل جدًا...n" * 100
text_area.insert(tk.END, long_text)

root.mainloop()

تذكر ضبط سمات width و height لأدواتك حسب الحاجة. جرّب أدوات ومحتويات مختلفة لفهم وظيفة أشرطة التمرير في Tkinter بشكل كامل.

اترك تعليقاً

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