Tkinter Tutorials

Tkinter’da Kaydırma Çubuklarında Ustalaşma

Spread the love

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 eden Text widget’ının yview 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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir