def draw(self, painter, xMap, yMap, canvasQRect): if DEBUG: print("%s.draw called" % self._title) nPoints = len(self._x) if not nPoints: return plot = self.plot() #just a line if len(self._x) < 3: xPixel = [0] * nPoints yPixel = [0] * nPoints for i in range(nPoints): xPixel[i] = plot.transform(Qwt5.QwtPlot.xBottom, self._x[i]) yPixel[i] = plot.transform(Qwt5.QwtPlot.yLeft, self._y[i]) line = qt.QLineF(xPixel[0], yPixel[0],\ xPixel[1], yPixel[1]) painter.drawLine(line) return #a generic polygon qPoints = [0] * nPoints for i in range(nPoints): qPoints[i] = qt.QPointF(\ plot.transform(Qwt5.QwtPlot.xBottom, self._x[i]), plot.transform(Qwt5.QwtPlot.yLeft, self._y[i])) polygon = qt.QPolygonF(qPoints) oldBrush = painter.brush() brush = qt.QBrush(oldBrush) brush.setStyle(qt.Qt.CrossPattern) painter.setBrush(brush) painter.drawPolygon(polygon, qt.Qt.OddEvenFill) painter.setBrush(oldBrush)
def drawEllipse(self,x,y,r): self.Item = qt.QGraphicsEllipseItem(x-r/2,y-r/2,r,r) self.Item.setFlag(qt.QGraphicsItem.ItemIsMovable) pen = qt.QPen(qt.Qt.blue) pen.setWidth( 3 ) brush = qt.QBrush(qt.QColor(0xFF, 0, 0, 0x00)) self.Item.setBrush(brush) self.Item.setPen(pen) self.scene.addItem(self.Item)
def setSelected(self, b): self.selected = b if QTVERSION > '4.0.0': if b: role = self.backgroundRole() palette = self.palette() palette.setBrush(role, self.brush) self.setPalette(palette) else: role = self.backgroundRole() palette = self.palette() palette.setBrush(role, qt.QBrush()) self.setPalette(palette) self.update()
def __init__(self, parent, peak): qt.QPushButton.__init__(self, parent) #, peak) self.peak = peak font = self.font() font.setBold(1) self.setText(peak) self.setFlat(1) if QTVERSION < '4.0.0': self.setToggleButton(0) self.setSizePolicy( qt.QSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Expanding)) self.selected = 0 self.brush = qt.QBrush(qt.QColor(qt.Qt.yellow)) self.connect(self, qt.SIGNAL("clicked()"), self.clickedSlot)
def __init__(self, parent=None, scene=None, keepratio=True): qt.QGraphicsRectItem.__init__(self, parent, scene) rect = parent.sceneBoundingRect() w = rect.width() h = rect.height() self._newRect = None self.keepRatio = keepratio self.setRect(qt.QRectF(w - 40, h - 40, 40, 40)) if DEBUG: self.setBrush(qt.QBrush(qt.Qt.white, qt.Qt.SolidPattern)) else: pen = qt.QPen() color = qt.QColor(qt.Qt.white) color.setAlpha(0) pen.setColor(color) pen.setStyle(qt.Qt.NoPen) self.setPen(pen) self.setBrush(color) self.setFlag(self.ItemIsMovable, True) self.show()
def drawPoint(self, x, y): self.scene.addRect(x, y, 4, 4, qt.Qt.black, qt.QBrush(qt.Qt.red)) self.scene.update
def fillfrommca(self, mcaresult, diag=1): line0 = 0 region = 0 alreadyforced = 0 for result in mcaresult: region = region + 1 if result['chisq'] is not None: chisq = QString("%6.2f" % (result['chisq'])) else: chisq = QString("Fit Error") if 1: xbegin = QString("%6g" % (result['xbegin'])) xend = QString("%6g" % (result['xend'])) fitlabel, fitpars, fitsigmas = self.__getfitpar(result) if QTVERSION < '4.0.0': qt.QHeader.setLabel(self.horizontalHeader(), 1, "Fit " + fitlabel) else: item = self.horizontalHeaderItem(1) item.setText("Fit " + fitlabel) i = 0 for (pos, area, sigma, fwhm) in result['mca_areas']: line0 = line0 + 1 if QTVERSION < '4.0.0': nlines = self.numRows() if (line0 > nlines): self.setNumRows(line0) else: nlines = self.rowCount() if (line0 > nlines): self.setRowCount(line0) line = line0 - 1 #pos=QString(str(pos)) #area=QString(str(area)) #sigma=QString(str(sigma)) #fwhm=QString(str(fwhm)) tregion = QString(str(region)) pos = QString("%6g" % (pos)) fitpar = QString("%6g" % (fitpars[i])) if fitlabel == 'Area': sigma = max(sigma, fitsigmas[i]) areastr = QString("%6g" % (area)) sigmastr = QString("%6.3g" % (sigma)) fwhm = QString("%6g" % (fwhm)) tregion = QString("%6g" % (region)) fields = [ pos, fitpar, areastr, sigmastr, fwhm, chisq, tregion, xbegin, xend ] col = 0 recolor = 0 if fitlabel == 'Area': if diag: if abs(fitpars[i] - area) > (3.0 * sigma): color = qt.QColor(255, 182, 193) recolor = 1 for field in fields: if QTVERSION < '4.0.0': if recolor: key = MyQTableItem(self, qttable.QTableItem.Never, field, color=color) else: key = qttable.QTableItem( self, qttable.QTableItem.Never, field) self.setItem(line, col, key) else: key = self.item(line, col) if key is None: key = qt.QTableWidgetItem(field) self.setItem(line, col, key) else: item.setText(field) if recolor: #function introduced in Qt 4.2.0 if QTVERSION >= '4.2.0': item.setBackground(qt.QBrush(color)) item.setFlags(qt.Qt.ItemIsSelectable | qt.Qt.ItemIsEnabled) col = col + 1 if recolor: if not alreadyforced: alreadyforced = 1 if QTVERSION < '4.0.0': self.ensureCellVisible(line, 0) else: self.scrollToItem(self.item(line, 0)) i += 1 i = 0 for label in self.labels: if QTVERSION < '4.0.0': self.adjustColumn(i) else: self.resizeColumnToContents(i) i = i + 1 ndict = {} ndict['event'] = 'McaTableFilled' if QTVERSION < '4.0.0': self.emit(qt.PYSIGNAL('McaTableSignal'), (ndict, )) else: self.emit(qt.SIGNAL('McaTableSignal'), ndict)