def start(self): self.rainbow = Rainbow(self.app.ipcon) self.update_frame_rate() self.update_step() self.rainbow.frame_rendered(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