Exemple #1
1
    def start(self):
        self.rainbow = Rainbow(self.app.ipcon)

        self.update_frame_rate()
        self.update_step()

        self.rainbow.frame_rendered(0)
Exemple #2
0
class RainbowWidget(QWidget, Ui_Rainbow):
    rainbow = None

    def __init__(self, parent, app):
        super(QWidget, self).__init__()
        self.app = app

        self.setupUi(self)

        self.slider_frame_rate.valueChanged.connect(self.slider_frame_rate_changed)
        self.slider_step.valueChanged.connect(self.slider_step_changed)

        self.spinbox_frame_rate.valueChanged.connect(self.spinbox_frame_rate_changed)
        self.spinbox_step.valueChanged.connect(self.spinbox_step_changed)

        self.button_default.pressed.connect(self.default_pressed)

        self.update_frame_rate_timer = QTimer(self)
        self.update_frame_rate_timer.timeout.connect(self.update_frame_rate)

        self.default_pressed()

    def start(self):
        self.rainbow = Rainbow(self.app.ipcon)

        self.update_frame_rate()
        self.update_step()

        self.rainbow.frame_rendered(0)

    def stop(self):
        if self.rainbow:
            self.rainbow.stop_rendering()
            self.rainbow = None

    def spinbox_frame_rate_changed(self, frame_rate):
        self.slider_frame_rate.setValue(frame_rate)
        self.update_frame_rate_timer.start(100)

    def spinbox_step_changed(self, step):
        self.slider_step.setValue(step * 10)
        self.update_step()

    def slider_frame_rate_changed(self, frame_rate):
        self.spinbox_frame_rate.setValue(frame_rate)

    def slider_step_changed(self, step):
        self.spinbox_step.setValue(step / 10.0)

    def default_pressed(self):
        self.spinbox_frame_rate.setValue(50)
        self.spinbox_step.setValue(0.2)

    def update_frame_rate(self):
        self.update_frame_rate_timer.stop()

        config.RAINBOW_FRAME_RATE = self.spinbox_frame_rate.value()

        if self.rainbow:
            self.rainbow.update_frame_rate()

    def update_step(self):
        config.RAINBOW_STEP = self.spinbox_step.value() / 100.0