Hepinize selamlar,
Öncelikle bir ekranımızın olduğunu düşünelim:
Ekran = Tk()
Ekran.title("Ekran")
Şimdi,kaydetme tuşu ekleyelim:
kaydetme_tuşu = Button (text = "Kaydet", command = Kaydetme)
kaydetme_tuşu.pack()
Ve şimdi bir fonksiyon:
def Kaydetme():
pass
Evet,bu kadardı.Şimdi sorunlarımı yazayım:
1)“Ctrl + S” tuşuna basılmadığı zaman (Hani kod editörlerinde “*” eklenir ya) "kaydetme_tuşu"nun text’ini “Kaydet” yapmak,
2)Uygulama açık iken eğer “Ctrl + S” tuşuna basarsak “kaydetme_tuşu” nun text’ini “Kaydedildi!” yapmak
3)Tekrar 1. soruna geçmek
Yardım edebilir misiniz?
Aşağıdaki kodları inceleyin isterseniz.
import tkinter as tk
root = tk.Tk()
button = tk.Button(master=root, text="Kaydet")
button.pack()
root.bind(
sequence="<Control-s>",
func=lambda event: button.configure(text="Kaydedildi")
)
root.bind(
sequence="<Control-S>",
func=lambda event: button.configure(text="Kaydedildi")
)
root.bind(
sequence="<KeyRelease>",
func=lambda event: button.configure(text="Kaydet")
)
root.mainloop()
1 Beğeni
Yukarıdaki <KeyRelease>
sekansı siz ctrl+s
'ye bastıktan sonra herhangi bir tuşa basıp sonra da tuşu serbest bırakırsanız da devreye girer. Eğer bu durumu ortadan kaldırmak istiyorsanız, yani sadece ctrl+s
tuşlarına bastıktan sonra bu tuşlardan herhangi birisi serbest kaldığında button
text
yazısının Kaydet
şeklinde değişmesini istiyorsanız, bind
ayarlarınızı şu şekilde değiştirebilirsiniz:
root.bind(
sequence=f"<Control-s>",
func=lambda event: button.configure(text="Kaydedildi")
)
root.bind(
sequence=f"<Control-S>",
func=lambda event: button.configure(text="Kaydedildi")
)
root.bind(
sequence=f"<KeyRelease-s>",
func=lambda event: button.configure(text="Kaydet")
)
root.bind(
sequence=f"<KeyRelease-S>",
func=lambda event: button.configure(text="Kaydet")
)
root.bind(
sequence=f"<KeyRelease-Control_L>",
func=lambda event: button.configure(text="Kaydet")
)
root.bind(
sequence=f"<KeyRelease-Control_R>",
func=lambda event: button.configure(text="Kaydet")
)
1 Beğeni