Python GUI Programming

Tkinter’ın ttk.Combobox Bileşeni: Kapsamlı Bir Kılavuz

Spread the love

Tkinter’daki ttk.Combobox bileşeni, Python GUI uygulamalarınızda açılır menüler oluşturmanın kullanışlı bir yolunu sağlar. Bu öğretici, combobox’ları projelerinize etkili bir şekilde entegre etmenize yardımcı olacak pratik örnekler sağlayarak, temel özelliklerini ve işlevlerini size anlatacaktır.

İçindekiler Tablosu:

  1. Temel Combobox Örneği
  2. Görünümü Özelleştirme: Yazı Tipleri ve Stilleri
  3. Olay İşleme ve Kullanıcı Etkileşimi
  4. Combobox Değerlerini Dinamik Olarak Güncelleme
  5. Salt Okunur Combobox’lar Oluşturma

1. Temel Combobox Örneği

ttk.Combobox‘ın oluşturulmasını ve kullanımını göstermek için basit bir örnekle başlayalım:


import tkinter as tk
from tkinter import ttk

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

combo = ttk.Combobox(root, values=["Seçenek 1", "Seçenek 2", "Seçenek 3"])
combo.pack(pady=20)
combo.current(0)  # Varsayılan değeri "Seçenek 1" olarak ayarla

root.mainloop()

Bu kod, ana bir pencere oluşturur, önceden tanımlanmış üç seçeneğe sahip bir combobox ekler ve varsayılan seçimi “Seçenek 1” olarak ayarlar. Hem tkinter hem de ttk‘yı içe aktarmanız gerektiğini unutmayın.

2. Görünümü Özelleştirme: Yazı Tipleri ve Stilleri

Combobox’ın görünümünü, örneğin yazı tipini özelleştirebilirsiniz:


import tkinter as tk
from tkinter import ttk
import tkinter.font as tkFont

root = tk.Tk()
root.title("Combobox Stil Örneği")

myFont = tkFont.Font(family="Helvetica", size=12, weight="bold")
combo = ttk.Combobox(root, values=["Seçenek A", "Seçenek B", "Seçenek C"], font=myFont)
combo.pack(pady=20)
combo.current(0)

root.mainloop()

Bu örnek, özel bir yazı tipi nasıl oluşturulur ve combobox’a nasıl uygulanır göstermektedir. İstediğiniz görünüme ulaşmak için farklı yazı tipi aileleri, boyutları ve kalınlıklarıyla denemeler yapın.

3. Olay İşleme ve Kullanıcı Etkileşimi

Kullanıcı seçimlerine yanıt vermek için, combobox’a olaylar bağlayın. Kullanıcı bir öğe seçtiğinde <<ComboboxSelected>> olayı tetiklenir:


import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title("Combobox Olay İşleme")

def combo_selected(event):
    seçili_öğe = combo.get()
    print(f"Seçili öğe: {seçili_öğe}")

combo = ttk.Combobox(root, values=["Seçenek 1", "Seçenek 2", "Seçenek 3"])
combo.pack(pady=20)
combo.current(0)
combo.bind("<<ComboboxSelected>>", combo_selected)

root.mainloop()

Bu kod, seçili öğeyi yazdıran combo_selected adlı bir fonksiyon tanımlar. bind metodu bu fonksiyonu <<ComboboxSelected>> olayına bağlar.

4. Combobox Değerlerini Dinamik Olarak Güncelleme

Combobox seçeneklerini çalışma zamanında dinamik olarak güncelleyebilirsiniz:


import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title("Dinamik Combobox")

combo = ttk.Combobox(root)
combo.pack(pady=20)

def update_combo():
    yeni_değerler = ["Yeni Seçenek 1", "Yeni Seçenek 2", "Yeni Seçenek 3"]
    combo["values"] = yeni_değerler

button = tk.Button(root, text="Combobox'u Güncelle", command=update_combo)
button.pack()

root.mainloop()

Bir buton, combobox’ın values özniteliğini değiştiren update_combo fonksiyonunu tetikler.

5. Salt Okunur Combobox’lar Oluşturma

Combobox’ı salt okunur hale getirmek (doğrudan metin girişi engellemek) için state seçeneğini kullanın:


import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title("Salt Okunur Combobox")

combo = ttk.Combobox(root, values=["Seçenek 1", "Seçenek 2", "Seçenek 3"], state="readonly")
combo.pack(pady=20)
combo.current(0)

root.mainloop()

state="readonly" ayarlanması, doğrudan metin girişini devre dışı bırakır ve yalnızca açılır listeden seçim yapılmasına izin verir.

Bir yanıt yazın

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