def __init__(self, parent=None): Qt.QWidget.__init__(self, parent) self.loadUi() self._controllers = [] # construct the layout for controllers container self.ctrlLayout = Qt.QHBoxLayout(self.controllersContainer) self.ctrlLayout.setContentsMargins(5, 0, 5, 0) self.ctrlLayout.setSpacing(1) # implement scroll bars for the controllers container self.scrollArea = Qt.QScrollArea(self) self.scrollArea.setWidget(self.controllersContainer) self.scrollArea.setVerticalScrollBarPolicy(Qt.Qt.ScrollBarAlwaysOff) self.scrollArea.setWidgetResizable(True) self.cpointsGroupBox.layout().insertWidget(0, self.scrollArea) # initialize data cpoints = 2 self.x = numpy.arange(256, dtype='double') self.y = numpy.zeros(256, dtype='double') self.xp = numpy.linspace(self.x[0], self.x[-1], cpoints) self.corrp = numpy.zeros(cpoints) self.yp = numpy.interp(self.xp, self.x, self.y) self.corr = numpy.zeros(self.x.size) # markers self.markerPos = self.xp[0] self.marker1 = Qwt5.QwtPlotMarker() self.marker1.setSymbol( Qwt5.QwtSymbol(Qwt5.QwtSymbol.Rect, Qt.QBrush(Qt.Qt.NoBrush), Qt.QPen(Qt.Qt.green), Qt.QSize(8, 8))) self.marker1.attach(self.plot1) self.marker2 = Qwt5.QwtPlotMarker() self.marker2.setSymbol( Qwt5.QwtSymbol(Qwt5.QwtSymbol.Rect, Qt.QBrush(Qt.Qt.NoBrush), Qt.QPen(Qt.Qt.green), Qt.QSize(8, 8))) self.marker2.attach(self.plot2) # cpointsPickers self._cpointMovingIndex = None self._cpointsPicker1 = Qwt5.QwtPicker(self.plot1.canvas()) self._cpointsPicker1.setSelectionFlags(Qwt5.QwtPicker.PointSelection) self._cpointsPicker2 = Qwt5.QwtPicker(self.plot2.canvas()) self._cpointsPicker2.setSelectionFlags(Qwt5.QwtPicker.PointSelection) self._cpointsPicker1.widgetMousePressEvent = self.plot1MousePressEvent self._cpointsPicker1.widgetMouseReleaseEvent = self.plot1MouseReleaseEvent self._cpointsPicker2.widgetMousePressEvent = self.plot2MousePressEvent self._cpointsPicker2.widgetMouseReleaseEvent = self.plot2MouseReleaseEvent self._cpointsPicker1.widgetMouseDoubleClickEvent = self.plot1MouseDoubleClickEvent self._cpointsPicker2.widgetMouseDoubleClickEvent = self.plot2MouseDoubleClickEvent self._populatePlots() self.resetCorrection() self._selectedController = self._controllers[0] self._addCPointsDialog = AddCPointsDialog(self) # Launch low-priority initializations (to speed up load time) # Qt.QTimer.singleShot(0, <method>) # connections self.addCPointsBT.clicked.connect(self._addCPointsDialog.show) self._addCPointsDialog.editBT.clicked.connect( self.showEditCPointsDialog) self._addCPointsDialog.cleanBT.clicked.connect(self.resetCorrection) self._addCPointsDialog.addSingleCPointBT.clicked.connect( self.onAddSingleCPointBT) self._addCPointsDialog.addRegEspCPointsBT.clicked.connect( self.onAddRegEspCPointsBT)
def __init__(self, parent=None): super(CurveStatsDialog, self).__init__(parent) self.loadUi() plot = parent xIsTime = plot.getXIsTime() self.ui.minDTE.setVisible(xIsTime) self.ui.maxDTE.setVisible(xIsTime) self.ui.minSB.setVisible(not xIsTime) self.ui.maxSB.setVisible(not xIsTime) self.ui.minSB.setMinimum(float('-inf')) self.ui.minSB.setMaximum(float('inf')) self.ui.maxSB.setMinimum(float('-inf')) self.ui.maxSB.setMaximum(float('inf')) icon = getIcon(':/actions/system-search.svg') self.ui.selectMinPB.setIcon(icon) self.ui.selectMaxPB.setIcon(icon) self.refreshCurves() cbs = (self.ui.npointsStatCB, self.ui.minStatCB, self.ui.maxStatCB, self.ui.meanStatCB, self.ui.stdStatCB, self.ui.rmsStatCB) self._checkboxToColMap = dict(zip(cbs, xrange(len(self.statColumns)))) self.minPicker = Qwt5.QwtPlotPicker(Qwt5.QwtPlot.xBottom, Qwt5.QwtPlot.yLeft, Qwt5.QwtPicker.PointSelection, Qwt5.QwtPicker.VLineRubberBand, Qwt5.QwtPicker.AlwaysOn, plot.canvas()) self.maxPicker = Qwt5.QwtPlotPicker(Qwt5.QwtPlot.xBottom, Qwt5.QwtPlot.yLeft, Qwt5.QwtPicker.PointSelection, Qwt5.QwtPicker.VLineRubberBand, Qwt5.QwtPicker.AlwaysOn, plot.canvas()) self.minPicker.setEnabled(False) self.maxPicker.setEnabled(False) # initialize min and max display xmin = plot.axisScaleDiv(Qwt5.QwtPlot.xBottom).lowerBound() xmax = plot.axisScaleDiv(Qwt5.QwtPlot.xBottom).upperBound() self.minMarker = Qwt5.QwtPlotMarker() self.minMarker.setLineStyle(Qwt5.QwtPlotMarker.VLine) self.minMarker.setLinePen(Qt.QPen(Qt.Qt.green, 3)) self.minMarker.setXValue(xmin) self.minMarker.attach(plot) self.minMarker.hide() self.maxMarker = Qwt5.QwtPlotMarker() self.maxMarker.setLineStyle(Qwt5.QwtPlotMarker.VLine) self.maxMarker.setLinePen(Qt.QPen(Qt.Qt.red, 3)) self.maxMarker.setXValue(xmax) self.maxMarker.attach(plot) self.maxMarker.hide() if xIsTime: self.ui.minDTE.setDateTime(self._timestamptToQDateTime(xmin)) self.ui.maxDTE.setDateTime(self._timestamptToQDateTime(xmax)) else: self.ui.minSB.setValue(xmin) self.ui.maxSB.setValue(xmax) refreshAction = Qt.QAction(getThemeIcon( 'view-refresh'), "Refresh available curves", self.ui.statsTW) refreshAction.setShortcut(Qt.Qt.Key_F5) self.connect(refreshAction, Qt.SIGNAL( "triggered()"), self.refreshCurves) self.ui.statsTW.addAction(refreshAction) # connections for cb in cbs: self.connect(cb, Qt.SIGNAL('toggled(bool)'), self.onStatToggled) self.connect(self.ui.calculatePB, Qt.SIGNAL( 'clicked()'), self.onCalculate) self.connect(self.ui.selectMinPB, Qt.SIGNAL( 'clicked()'), self.onSelectMin) self.connect(self.ui.selectMaxPB, Qt.SIGNAL( 'clicked()'), self.onSelectMax) self.connect(self.minPicker, Qt.SIGNAL( 'selected(QwtDoublePoint)'), self.minSelected) self.connect(self.maxPicker, Qt.SIGNAL( 'selected(QwtDoublePoint)'), self.maxSelected) self.connect(self.ui.minSB, Qt.SIGNAL( 'valueChanged(double)'), self.onMinChanged) self.connect(self.ui.minDTE, Qt.SIGNAL( 'dateTimeChanged(QDateTime)'), self.onMinChanged) self.connect(self.ui.maxSB, Qt.SIGNAL( 'valueChanged(double)'), self.onMaxChanged) self.connect(self.ui.maxDTE, Qt.SIGNAL( 'dateTimeChanged(QDateTime)'), self.onMaxChanged) self.connect(self.ui.minCB, Qt.SIGNAL( 'toggled(bool)'), self.onMinChanged) self.connect(self.ui.maxCB, Qt.SIGNAL( 'toggled(bool)'), self.onMaxChanged)