Tkinter Tutorials

Tkinter Checkbutton’lar: Kapsamlı Bir Kılavuz

Spread the love

Onay kutuları, Tkinter’da temel bir kullanıcı arabirimi öğesidir ve kullanıcılara seçenekleri seçme veya seçimini kaldırma konusunda basit bir yol sunar. Bu öğretici, temel uygulamadan geri arama fonksiyonu bağlama ve varsayılan durumları değiştirme gibi gelişmiş tekniklere kadar onay kutularının kullanımının çeşitli yönlerini ele almaktadır.

İçindekiler Tablosu:

  1. Temel Onay Kutusu Örneği
  2. Programatik Seçim ve Seçim Kaldırma
  3. Onay Kutusu Durumunu Değiştirme
  4. Geri Arama Fonksiyonları Bağlama
  5. Varsayılan Onay Kutusu Değerini Ayarlama
  6. Ek Seçenekleri Keşfetme

1. Temel Onay Kutusu Örneği

Tek bir onay kutusunu gösteren basit bir örnekle başlayalım:


import tkinter as tk

root = tk.Tk()
root.title("Onay Kutusu Örneği")

var = tk.BooleanVar()
checkbutton = tk.Checkbutton(root, text="Şartları kabul ediyorum", variable=var)
checkbutton.pack()

root.mainloop()

Bu, “Şartları kabul ediyorum” etiketli bir onay kutusu içeren bir pencere oluşturur. BooleanVar() onay kutusunun durumunu (seçili için True, seçili değil için False) saklar. pack() onay kutusunu pencerede konumlandırır.

2. Programatik Seçim ve Seçim Kaldırma

Onay kutusunun durumunu ilişkili değişkenini kullanarak doğrudan kontrol edebilirsiniz:


import tkinter as tk

root = tk.Tk()
root.title("Onay Kutusu Kontrolü")

var = tk.BooleanVar()
checkbutton = tk.Checkbutton(root, text="Beni seç!", variable=var)
checkbutton.pack()

def select():
    var.set(True)

def deselect():
    var.set(False)

select_button = tk.Button(root, text="Seç", command=select)
select_button.pack()

deselect_button = tk.Button(root, text="Seçimi Kaldır", command=deselect)
deselect_button.pack()

root.mainloop()

Bu örnek, onay kutusunu programatik olarak seçmek ve seçimini kaldırmak için düğmeler ekler.

3. Onay Kutusu Durumunu Değiştirme

Sık kullanılan bir durum, onay kutusunun durumunu değiştirmeyi içerir:


import tkinter as tk

root = tk.Tk()
root.title("Onay Kutusu Değiştirme")

var = tk.BooleanVar()
checkbutton = tk.Checkbutton(root, text="Beni değiştir!", variable=var, command=lambda: print(f"Onay kutusu durumu: {var.get()}"))
checkbutton.pack()

root.mainloop()

command seçeneği, onay kutusu değiştirildiğinde her seferinde bir fonksiyonu (burada, geçerli durumu yazdırma) tetikler.

4. Geri Arama Fonksiyonları Bağlama

Daha karmaşık işlemler özel bir geri arama fonksiyonu kullanılarak gerçekleştirilebilir:


import tkinter as tk

root = tk.Tk()
root.title("Onay Kutusu Geri Arama")

def callback():
    if var.get():
        print("Onay kutusu seçildi!")
    else:
        print("Onay kutusu seçimi kaldırıldı!")

var = tk.BooleanVar()
checkbutton = tk.Checkbutton(root, text="Geri Aramayı Tetikle!", variable=var, command=callback)
checkbutton.pack()

root.mainloop()

Bu örnek, onay kutusunun durumuna bağlı olarak bir mesaj yazdıran bir geri arama fonksiyonunu göstermektedir.

5. Varsayılan Onay Kutusu Değerini Ayarlama

Onay kutusunun başlangıç durumu ayarlanabilir:


import tkinter as tk

root = tk.Tk()
root.title("Onay Kutusu Varsayılan Değeri")

var = tk.BooleanVar(value=True)  # Başlangıçta seçili
checkbutton = tk.Checkbutton(root, text="Varsayılan Seçili!", variable=var)
checkbutton.pack()

root.mainloop()

BooleanVar‘ı True olarak başlatarak, onay kutusu seçili durumda başlar.

6. Ek Seçenekleri Keşfetme

Tkinter’ın Checkbutton bileşeni, özelleştirme için birkaç başka seçenek sunar, bunlar arasında:

  • onvalue ve offvalue: Seçili ve seçili olmayan durumlarla ilişkili değerleri özelleştirin (varsayılan olarak sırasıyla 1 ve 0’dır).
  • variable: BooleanVar kullandık, ancak daha karmaşık durum yönetimi için diğer değişken türlerini de kullanabilirsiniz.
  • indicatoron: Onay kutusunun görsel bir gösterge (kare kutu) gösterip göstermediğini kontrol eder.
  • selectcolor: Seçili göstergenin rengini değiştirin.
  • offrelief ve onrelief: Seçili ve seçili olmayan durumlarda düğmenin 3B görünümünü kontrol edin.

Seçeneklerin ve kullanımlarının tam listesi için resmi Tkinter belgesine bakın.

Bir yanıt yazın

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