Tkinter’ın OptionMenu
bileşeni, Python GUI uygulamalarınızda açılır menüler oluşturmak için basit ancak etkili bir yol sağlar. Bu kılavuz, temel açılır menülerin oluşturulmasını ve kullanıcı seçim değişiklikleriyle tetiklenen işlevsellikle iyileştirilmesini kapsamaktadır.
İçerik Tablosu
Temel Bir Açılır Menü Oluşturma
Bir Tkinter açılır menüsünün temeli ttk.OptionMenu
bileşenidir. Bu örnek, temel uygulamasını göstermektedir:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("Temel Tkinter Açılır Menü")
selected_option = tk.StringVar(root)
selected_option.set("Seçenek 1") # Varsayılan değer
options = ["Seçenek 1", "Seçenek 2", "Seçenek 3"]
option_menu = ttk.OptionMenu(root, selected_option, *options)
option_menu.pack(pady=20)
root.mainloop()
Bu kod, bir pencere oluşturur, seçilen seçeneği saklamak için bir StringVar
başlatır, bir seçenek listesi tanımlar ve açılır menüyü oluşturmak için ttk.OptionMenu
kullanır. *options
, listeyi ayrıştırır ve her seçeneği OptionMenu
‘ya ayrı bir bağımsız değişken olarak sağlar. Seçilen değer otomatik olarak selected_option
‘da güncellenir.
Seçim Değişikliklerine Tepki Verme
Etkileşimliliği artırmak için, kullanıcı farklı bir seçenek seçtiğinde kod çalıştırabiliriz. Bu, StringVar
‘ın trace
yöntemi kullanılarak yapılır:
import tkinter as tk
from tkinter import ttk
def option_changed(new_value):
print(f"Seçilen seçenek: {new_value}")
# Özel eylemlerinizi buraya ekleyin, örneğin, diğer bileşenleri güncelleyin,
# ağ istekleri yapın, vb.
root = tk.Tk()
root.title("Etkileşimli Tkinter Açılır Menü")
selected_option = tk.StringVar(root)
selected_option.set("Seçenek 1")
options = ["Seçenek 1", "Seçenek 2", "Seçenek 3"]
option_menu = ttk.OptionMenu(root, selected_option, *options)
option_menu.pack(pady=20)
selected_option.trace("w", lambda *args: option_changed(selected_option.get()))
root.mainloop()
selected_option
değişkeni değiştiğinde option_changed
fonksiyonu çağrılır. trace("w", ...)
yöntemi, değişkene yazıldığında bu fonksiyonun çağrılmasını kaydeder. Lambda fonksiyonu, geçerli değerin option_changed
‘e iletilmesini sağlar. print
ifadesini uygulamanızın mantığıyla değiştirin.
Bu yaklaşım, kullanıcı etkileşimini ve uygulama işlevselliğini artıran dinamik ve duyarlı bir açılır menü oluşturur.