Merhabalar, bu bölümde PyQt5 de sinyal oluşturma ve bu sinyali kullanmayı göreceğiz.Lafı uzatmadan işe koyulalım.
Önce PyQt5 i import edelim ve QObject oluşturalım.(Kavramı yanlış kullanmışsam özür diliyorum.)
from PyQt5.QtCore import *
class BunlarBenimSinyallerim(QObject):
roketpatlasin = pyqtSignal()
Sonra biz BunlarBenimSinyallerim adlı sınıfımızı örnekleyelim.
from PyQt5.QtCore import *
class BunlarBenimSinyallerim(QObject):
roketpatlasin = pyqtSignal()
sinyal = BunlarBenimSinyallerim()
İşte şimdi işin sonuna geliyoruz.Sinyal yayıldıgında çalışacak olan fonksiyonumuzu yazalım ve bu fonksiyonu sinyale bağlayalım.
from PyQt5.QtCore import *
class BunlarBenimSinyallerim(QObject):
roketpatlat = pyqtSignal()
sinyal = BunlarBenimSinyallerim()
@pyqtSlot()
def on_roketPatladiginda():
print("heeeey","Roket patlıyoooor...", "biri roketi patlatmak için sinyal yaydı!")
sinyal.roketpatlat.connect(on_roketPatladiginda)
Şimdi gelin roketi patlatalım :)
from PyQt5.QtCore import *
class BunlarBenimSinyallerim(QObject):
roketpatlasin = pyqtSignal()
sinyal = BunlarBenimSinyallerim()
@pyqtSlot()
def on_roketPatladiginda():
print("heeeey","Roket patlıyoooor...", "biri roketi patlatmak için sinyal yaydı!")
sinyal.roketpatlat.connect(on_roketPatladiginda)
sinyal.emit()
Gelin bir de sinyali parametreli yayalım.
Sinyalimiz çalıştıgında arabamız istediğimiz mesafeye gitsin.Ne dersiniz?Hadi işe koyulalım.
from PyQt5.QtCore import *
class BunlarBenimSinyallerim(QObject):
arabayahukmet = pyqtSignal(int)
sinyal = BunlarBenimSinyallerim()
@pyqtSlot(int)
def on_arabayaSinyalVerdiginde(gidilecek_mesafe):
print("Merhabalar, ben otomobil","bir sinyal aldım ve bu sinyal benim {} metre yol almamı emir buyurdu.".format(gidilecek_mesafe))
sinyal.arabayahukmet.connect(on_arabayaSinyalVerdiginde)
sinyal.emit(19)
Sonraki yazılarda görüşmek üzere …