Zasada jest dość prosta, bo opiera się na stosowaniu metody pyqtSignal(args, name=nazwa_sygnalu), której zadaniem jest utworzenie nowego sygnału.
Przykład (tworzenie nowego sygnału)
from PyQt4.QtCore import pyqtSignal
from PyQt4.QtGui import QWidget, QPushButton
class NowyWidget(QWidget):
def __init__(self, parent):
QWidget.__init__(self, parent)
btn = QPushButton('Kliknij')
btn.clicked.connect(self.btnClick)
widgetSygnal = pyqtSignal(str, name='widgetSygnal')
def btnClick(self, ch):
self.widgetSygnal.emit('Witaj')
def nowySlot(wiadomosc):
print wiadomosc
def main():
wgt = NowyWidget()
wgt.widgetSygnal.connect(nowySlot)
Ze zdarzeniem QPushButton.clicked został połączony slot w postaci metody btnKlik zdefiniowany w klasie NowyWidget. Gdy użytkownik kliknie w przycisk, zostanie ona uruchomiona, a następnie wyemitowany nowy sygnał widgetSygnal, który został utworzony przy pomocy wspomnianej funkcji pyqtSignal. Zgodnie z jej wywołaniem slot, który podłączymy do sygnału powinien przyjmować jeden argument typu str, tak jak metoda nowySlot, która wyświetla otrzymaną wiadomość na ekranie.
Brak komentarzy:
Prześlij komentarz