def on_activate(self):
""" Definition and initialisation of the GUI plus staring the measurement.
"""
self._laser_logic = self.get_connector('laserlogic')
#####################
# Configuring the dock widgets
# Use the inherited class 'CounterMainWindow' to create the GUI window
self._mw = LaserWindow()
# Setup dock widgets
self._mw.setDockNestingEnabled(True)
self._mw.actionReset_View.triggered.connect(self.restoreDefaultView)
# set up plot
self._mw.plotWidget = pg.PlotWidget(
axisItems={'bottom': TimeAxisItem(orientation='bottom')})
self._mw.pwContainer.layout().addWidget(self._mw.plotWidget)
plot1 = self._mw.plotWidget.getPlotItem()
plot1.setLabel('left', 'power', units='W', color=palette.c1.name())
plot1.setLabel('bottom', 'Time', units=None)
plot1.setLabel('right', 'Temperature', units='°C', color=palette.c3.name())
plot2 = pg.ViewBox()
plot1.scene().addItem(plot2)
plot1.getAxis('right').linkToView(plot2)
plot2.setXLink(plot1)
self.curves = {}
colorlist = (palette.c2, palette.c3, palette.c4, palette.c5, palette.c6)
i = 0
for name in self._laser_logic.data:
if name != 'time':
curve = pg.PlotDataItem()
if name == 'power':
curve.setPen(palette.c1)
plot1.addItem(curve)
else:
curve.setPen(colorlist[(2*i) % len(colorlist)])
plot2.addItem(curve)
self.curves[name] = curve
i += 1
self.plot1 = plot1
self.plot2 = plot2
self.updateViews()
self.plot1.vb.sigResized.connect(self.updateViews)
self.updateButtonsEnabled()
self._mw.laserButton.clicked.connect(self.changeLaserState)
self._mw.shutterButton.clicked.connect(self.changeShutterState)
self.sigLaser.connect(self._laser_logic.set_laser_state)
self.sigShutter.connect(self._laser_logic.set_shutter_state)
self.sigCurrent.connect(self._laser_logic.set_current)
self.sigPower.connect(self._laser_logic.set_power)
self.sigCtrlMode.connect(self._laser_logic.set_control_mode)
self._mw.controlModeButtonGroup.buttonClicked.connect(self.changeControlMode)
self.sliderProxy = pg.SignalProxy(self._mw.setValueVerticalSlider.valueChanged, 0.1, 5, self.updateFromSlider)
self._mw.setValueDoubleSpinBox.editingFinished.connect(self.updateFromSpinBox)
self._laser_logic.sigUpdate.connect(self.updateGui)
评论列表
文章目录