Bu öğretici, Tkinter uygulamalarınızda kaydırma çubukları uygulama konusunda size rehberlik edecektir. Kaydırma çubukları, görünür pencere alanını aşan içeriği yönetmek ve sorunsuz bir kullanıcı deneyimi sağlamak için çok önemlidir.
İçerik Tablosu
Dikey Kaydırma Çubukları
Text
, Listbox
veya özel tuvaller gibi widget’larınızın, pencerenin yüksekliğine sığmayacak kadar çok içerik içermesi durumunda dikey kaydırma çubukları çok önemlidir. Text
widget’ı kullanarak basit bir örnek oluşturalım:
import tkinter as tk
root = tk.Tk()
root.title("Tkinter Dikey Kaydırma Çubuğu")
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 = "Bu, kaydırma çubuğunun işlevselliğini göstermek için uzun bir metin örneğidir. Kaydırma çubuğunun gerekli hale gelmesini sağlamak için birkaç satıra devam edecektir. İstediğiniz kadar metin ekleyebilirsiniz ve kaydırma çubuğu otomatik olarak ayarlanacaktır." * 5
text_area.insert(tk.END, long_text)
root.mainloop()
Bu kod, bir Text
widget’ı ve dikey bir kaydırma çubuğu oluşturur. Önemli satırlar şunlardır:
command=text_area.yview
: Kaydırma çubuğunun hareketini, dikey kaydırmayı kontrol edenText
widget’ınınyview
yöntemine bağlar.yscrollcommand=scrollbar.set
:Text
widget’ının kaydırma olaylarını kaydırma çubuğuna bağlar ve konumunu günceller.
Yatay Kaydırma Çubukları
İçeriğinizin genişliği pencerenin genişliğini aştığında yatay kaydırma çubukları kullanılır. Uygulama dikey kaydırma çubuğuna benzer, ancak xview
yöntemini ve orient="horizontal"
‘ı kullanıyoruz:
import tkinter as tk
root = tk.Tk()
root.title("Tkinter Yatay Kaydırma Çubuğu")
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()
Bu örnek bir Canvas
widget’ı kullanır. yview
yerine xview
kullanımına ve kaydırma çubuğunun alt kısma yerleştirilmesine dikkat edin.
Yatay ve Dikey Kaydırma Çubuklarını Birleştirme
Maksimum esneklik için hem yatay hem de dikey kaydırma çubuklarını birleştirebilirsiniz. Bu, içeriği hem pencerenin genişliğini hem de yüksekliğini aşan widget’lar için özellikle kullanışlıdır. Hem kaydırma çubuklarına sahip bir Text
widget’ı kullanarak bir örnek verilmiştir:
import tkinter as tk
root = tk.Tk()
root.title("Tkinter Birleşik Kaydırma Çubukları")
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 = "Bu çok uzun bir metin örneğidir...n" * 100
text_area.insert(tk.END, long_text)
root.mainloop()
Gerektiğinde widget’larınızın width
ve height
özniteliklerini ayarlamayı unutmayın. Tkinter’da kaydırma çubuklarının işlevselliğini tam olarak anlamak için farklı widget’lar ve içeriklerle deney yapın.