Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
 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()
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
 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()
Exemplo n.º 6
0
 def drawPoint(self, x, y):
     self.scene.addRect(x, y, 4, 4, qt.Qt.black, qt.QBrush(qt.Qt.red))
     self.scene.update
Exemplo n.º 7
0
    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)