GUI Programming

Tkinter ile Dinamik Açılır Menüler Oluşturma

Spread the love

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

  1. Temel Bir Açılır Menü Oluşturma
  2. Seçim Değişikliklerine Tepki Verme

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.

Bir yanıt yazın

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