سيرشدك هذا البرنامج التعليمي إلى كيفية تنفيذ أشرطة التمرير في تطبيقات 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 بشكل كامل.