Пример #1
0
class Worker(QObject):
    finished=pyqtSignal()

    def __init__(self, parent=None, **kwargs):
        super (Worker, self).__init__(parent, **kwargs)

        self._stop=False
        self._scheme=0
        self._pattern=0
        self._width=0
        self._speed=0

	self._neoPixel=NeoPixel(24)
        self._neoPixel.setBrightness(.4)

    @pyqtSlot()
    def work(self):
        if self._stop:
            self._neoPixel.clear()
            self._neoPixel.show()
            self.finished.emit()
            return    

        scheme=schemes[self._scheme]
        speed=speedValues[self._speed]

        if self._pattern==BARS:
            self._neoPixel.bars(scheme, barWidthValues[self._width], speed)        
        elif self._pattern==GRADIENT:
            self._neoPixel.gradient(scheme, gradientWidthValues[self._width], speed)

        QTimer.singleShot(10, self.work)

    @pyqtSlot(int)
    def setScheme(self, scheme): self._scheme=scheme

    @pyqtSlot(int)
    def setPattern(self, pattern): self._pattern=pattern

    @pyqtSlot(int)
    def setWidth(self, width): self._width=width

    @pyqtSlot(int)
    def setSpeed(self, speed): self._speed=speed

    @pyqtSlot()
    def stop(self): self._stop=True