PyQt5 Signal ve Slot mantığı

Merhaba arkadaşlar bu yazıda Signal ve Slot nedir bunlardan bahsetmek istiyorum.  Aslında program içindeki iki adamı düşünsek birisi sesleniyor diğeri kendine seslenildiğini anlayarak yapması gerekeni yapıyor gibi bir şey.  Aslında ibareler Qt ye has oldugundan bu ne diyebilirsiniz ancak olmayan birşey değil. Diyelim ki butona tıklıyorsunuz  ne oluyor ? . Buton’un click olayına basıldı diye program içinde birisi bağırıyor değil mi 🙂 . Yani butonun click olayı tetiklenmiş oluyor ve sistem bundan haberdar oluyor. Peki sonra . O butonun click olayı ile ilişkilendirilmiş bir fonksiyon varsa bu fonksiyon çalışıyor.  Şimdi ne oldu ? butona basılınca click sinyali yayılıyor sisteme ve bu sinyal ile bağlı bir fonksiyon varsa ki buna slot deniyor bu slot çalışmaya başlıyor.  İşte sinyal – slot kavramı bu şekilde.

Örnek olarak bir sinyal oluşturalım ve bu sinyali kendisini yayacak bir kontrole bağlayalım ve sinyali slota bağlayıp konuyu anlamış olalım

Kodlamadaki senaryo ya bakarsak;

  1.  bir sinyal oluştur
  2. sinyali yaymak için bir tetikleyiciye bağla
  3. sinyali bir slot’a bağla

Yemek tarifi gibi oldu ama anlaşılsın gerisi önemli değil.

Evet burada bizim sinyalimizi yaymak için slider nesnesinin valueChanged tetikleyecisini kullandık. Peki biz kendimiz bir sinyal yayamazmıydık illa bir kontrolün böyle bir tetikleyicisine mi ihtiyaç duyacağız. Cevap evet bizde yayabiliriz bunun için emit() metoduu kullanmak gerekiyor.

 

Add a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir