Merhabalar bir projem için arayüz tasarlıyorum. Proje çalıştırılırken -i, -o ve -d şeklinde 3 adet parametre alıyor. -d yazdıktan sonra 0 yazılırsa işlem arka planda yapılıyor. Ancak 0 dan farklı herhangi bir sayı yazılırsa işlem ekran üzerinde yapılıyor.

boş bir değişken oluşturdum eğer kullanıcı raidobutton üzerinde arka planı seçerse değişkenin içindeki değer 0 olsun istiyorum. Eğer ekranda gösterilsin seçeneğini seçerse değişkene 1 yazılsın. Bunu nasıl yapabilirim?
Merhaba, bir kod paylaşmamışsınız ama bu tür widget’lar (radiobutton, checkbox gibi) oluşturulurken, değerlerini (value
ile belirlenen) saklayabileceğiniz bir değişken (variable
ile belirtilen) söyleme imkanınız oluyor. Bir örnek:
import tkinter as tk
# asıl pencere
root = tk.Tk()
# 2 radiobutton; `tercih` yukarıda bahsedilen değişken
tercih = tk.StringVar(value="ekran")
tk.Radiobutton(root, text="Arka plan", variable=tercih, value="arkaplan").pack()
tk.Radiobutton(root, text="Ekranda", variable=tercih, value="ekran").pack()
# test amaçlı bir buton
def yazdir():
if tercih.get() == "arkaplan":
print("arka plan seçilmiş")
else:
print("ekran seçilmiş")
tk.Button(root, text="yaz", command=yazdir).pack()
# dön dur
root.mainloop()
(tercih
değişkenini value="ekran"
ile oluşturarak ilk başta “Ekran” radibutton’unun seçili olmasını sağlıyoruz.)
Radiobutton
'lara variable
olarak tercih
denen StringVar
'ı “bağladık”; kim seçilirse onun değeri (ki onu da value="arkaplan"
ve diğeri diye belirttik) tercih
değişkenine atanıyor. Biz de bunu, mesela, bir buton basıldığında get
ile elde edip duruma göre hareket ediyoruz (print
mevzusu).
Bu arada bağladığımız değişken alelade bir değişken değil (2. paragraf) dikkat ederseniz; bir StringVar
. Hatta öyle ki, tercih
değişkenini değiştirdiğinizde seçili Radiobutton da değişebiliyor! (Yukarıdaki else
'e tercih.set("arkaplan")
'ı ekleyip görebilirsiniz.) Yani iki yönlü bir bağlılık var.
1 Beğeni