Cihat Altıparmak

Bu blogta yazılarımı yayınlıyorum.\ I'm publishing my articles here.

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 …

<– geri