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