def updateColor(self): """ Update the color on the sampleModel modify to fit to the actual view """ if not self.view.sampleTableView.selectedIndexes():#not self.acTree.selectedIndexes(): return idx = self.view.sampleTableView.selectedIndexes()[0] sample = self.model.sample(idx.data().toString(), fullNameEntry=False) if sample is None: self.view.showErrorMessage('Error', 'Please choose only one file...') return color = QColorDialog.getColor() if not color.isValid(): return sample.color=color.getRgbF()[:-1] #make the gradient color here to color =QColor.fromRgbF(*(sample.color+(1.,))) colorr=QColor.fromRgbF(*(sample.color+(.5,))) gradient=QLinearGradient(-100, -100, 100, 100) gradient.setColorAt(0.7, colorr) gradient.setColorAt(1, color) #for m in (self.view.sampleModel, self.view.spectraModel, self.view.peakModel, # self.view.clusterModel):#self.view.chromaModel, for i in xrange(self.view.sampleModel.rowCount()): item=self.view.sampleModel.item(i,0) if item.text()== sample.shortName(): item.setBackground(QBrush(gradient))
def onContentsChange(self, a, b, c): #print(a, b, c) try: tokens = self.tokenizer.tokenize(self.toPlainText()) except tokenize.TokenError: return for tok in tokens: if tok.type == python_tokens['NAME']: for words, weight, color in TOKEN_CLASSES: if tok.string in words: cursor = self.select_token(tok) fmt = cursor.charFormat() fmt.setFontWeight(weight) fmt.setForeground(color) cursor.setCharFormat(fmt) elif tok.type == python_tokens['COMMENT']: cursor = self.select_token(tok) fmt = cursor.charFormat() fmt.setForeground(QColor.fromRgbF(0.0, 0.0, 0.9)) cursor.setCharFormat(fmt) elif tok.type == python_tokens['STRING']: cursor = self.select_token(tok) fmt = cursor.charFormat() fmt.setForeground(QColor.fromRgbF(0.0, 0.0, 0.9)) cursor.setCharFormat(fmt) elif tok.type in IGNORE_TOKENS: pass else: pass
def getColouredRootItem(sample): """stable, may be subdivised in sub routines """ root = QStandardItem(sample.shortName()) #root.setIcon(QIcon(QPixmap(os.path.normpath('gui/icons/formula.png')))) color =QColor.fromRgbF(sample.color[0],sample.color[1], sample.color[2],1.) colorr=QColor.fromRgbF(sample.color[0],sample.color[1], sample.color[2],.5) gradient=QLinearGradient(-100, -100, 100, 100) gradient.setColorAt(0.7, colorr);gradient.setColorAt(1, color) root.setBackground(QBrush(gradient)) root.setEditable(False) root.setCheckState(Qt.Checked) root.setCheckable(True) return root
def __init__( self, *args ): super(ColorPickerWidget, self).__init__( *args ) self.updating = False self.updatingAlpha = False self.ui = ColorPickerForm() self.ui.setupUi( self ) self.setWindowFlags( Qt.Popup ) self.preview = ColorPreviewWidget( self.ui.containerPreview ) self.hueSlider = HueSliderWidget( self.ui.containerHueSlider ) self.alphaSlider = AlphaSliderWidget( self.ui.containerAlphaSlider ) self.colorPlane = ColorPlaneWidget( self.ui.containerColorPlane ) self.hueSlider .valueChanged .connect( self.onHueChanged ) self.alphaSlider .valueChanged .connect( self.onAlphaSliderChanged ) self.colorPlane .valueChanged .connect( self.onColorBaseChanged ) self.ui.buttonOK .clicked .connect( self.onButtonOK ) self.ui.buttonCancel .clicked .connect( self.onButtonCancel ) self.ui.buttonCopyHEX .clicked .connect( self.onButtonCopyHEX ) self.ui.buttonCopyRGB .clicked .connect( self.onButtonCopyRGBA ) self.ui.buttonCopyHSV .clicked .connect( self.onButtonCopyHSV ) self.ui.buttonScreenPick.clicked.connect( self.onButtonScreenPick ) self.ui.numR.valueChanged.connect( self.onTextRGBChanged ) self.ui.numG.valueChanged.connect( self.onTextRGBChanged ) self.ui.numB.valueChanged.connect( self.onTextRGBChanged ) self.ui.numH.valueChanged.connect( self.onTextHSVChanged ) self.ui.numS.valueChanged.connect( self.onTextHSVChanged ) self.ui.numV.valueChanged.connect( self.onTextHSVChanged ) self.ui.textHex.textChanged.connect( self.onTextHexChanged ) self.ui.numA.valueChanged.connect( self.onAlphaSliderChanged ) self.originalColor = QColor.fromRgbF( 0.0, 0.0, 0.0 ) self.currentColor = QColor.fromRgbF( 1.0, 1.0, 0.0 ) self.preview.setColor( self.currentColor ) self.preview.setOriginalColor( self.originalColor ) self.updateAlphaWidgets() self.updateTextWidgets() self.updateColorPlane()
def paintEvent( self, event ): painter = QtGui.QPainter() color = self.color painter.begin( self ) margin = 2 x = margin y = margin w = self.width() - margin * 2 h = self.height() - margin * 2 gridSize = 5 gridPart = gridSize * 1 painter.translate( margin, margin ) painter.setPen( Qt.black ) painter.setBrush( Qt.white ) painter.drawRect( 0,0,w,h ) painter.setPen( Qt.NoPen ) painter.setBrush( QColor.fromRgbF( 0.5, 0.5, 0.5 ) ) painter.setClipRect( 0,0,w,h ) for y in range( int(h/gridSize+1) ): for x in range( int(w/gridSize+1) ): if (x % 2) == (y % 2): painter.drawRect( x * gridSize, y * gridSize, gridSize, gridSize ) painter.setBrush( color ) painter.drawRect( 0,0,w,h ) colorFull = QColor( color ) colorFull.setAlpha( 255 ) painter.setBrush( colorFull ) painter.drawRect( 0,0, w/2, h ) painter.end()
def basefinished(self): if self.basereply.error() != QNetworkReply.NoError: return self.basepixmap = QPixmap() self.basepixmap.loadFromData(self.basereply.readAll()) if self.basepixmap.size() != self.rect.size(): self.basepixmap = self.basepixmap.scaled(self.rect.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation) self.setPixmap(self.basepixmap) # make marker pixmap self.mkpixmap = QPixmap(self.basepixmap.size()) self.mkpixmap.fill(Qt.transparent) br = QBrush(QColor(Config.dimcolor)) painter = QPainter() painter.begin(self.mkpixmap) painter.fillRect(0, 0, self.mkpixmap.width(), self.mkpixmap.height(), br) for marker in self.radar['markers']: if 'visible' not in marker or marker['visible'] == 1: pt = getPoint(marker["location"], self.point, self.zoom, self.rect.width(), self.rect.height()) mk2 = QImage() mkfile = 'teardrop' if 'image' in marker: mkfile = marker['image'] if os.path.dirname(mkfile) == '': mkfile = os.path.join('markers', mkfile) if os.path.splitext(mkfile)[1] == '': mkfile += '.png' mk2.load(mkfile) if mk2.format != QImage.Format_ARGB32: mk2 = mk2.convertToFormat(QImage.Format_ARGB32) mkh = 80 # self.rect.height() / 5 if 'size' in marker: if marker['size'] == 'small': mkh = 64 if marker['size'] == 'mid': mkh = 70 if marker['size'] == 'tiny': mkh = 40 if 'color' in marker: c = QColor(marker['color']) (cr, cg, cb, ca) = c.getRgbF() for x in range(0, mk2.width()): for y in range(0, mk2.height()): (r, g, b, a) = QColor.fromRgba(mk2.pixel(x, y)).getRgbF() r = r * cr g = g * cg b = b * cb mk2.setPixel(x, y, QColor.fromRgbF(r, g, b, a).rgba()) mk2 = mk2.scaledToHeight(mkh, 1) painter.drawImage(pt.x - mkh / 2, pt.y - mkh / 2, mk2) painter.end() self.wmk.setPixmap(self.mkpixmap)
def getColouredRootItem(sample): """stable, may be subdivised in sub routines """ root = QStandardItem(sample.shortName()) #root.setIcon(QIcon(QPixmap(os.path.normpath('gui/icons/formula.png')))) color = QColor.fromRgbF(sample.color[0], sample.color[1], sample.color[2], 1.) colorr = QColor.fromRgbF(sample.color[0], sample.color[1], sample.color[2], .5) gradient = QLinearGradient(-100, -100, 100, 100) gradient.setColorAt(0.7, colorr) gradient.setColorAt(1, color) root.setBackground(QBrush(gradient)) root.setEditable(False) root.setCheckState(Qt.Checked) root.setCheckable(True) return root
def paintEvent( self, event ): painter = QtGui.QPainter( self ) painter.setPen( Qt.NoPen ) w = self.width() h = self.height() painter.setBrush( self.originalColor ) painter.drawRect( 0, 0, w, h/2 ) cSolid = QColor( self.previewColor ) cSolid.setAlphaF( 1 ) #left 1/2 for solid color painter.setBrush( cSolid ) painter.drawRect( 0, h/2, w/2, h/2 + 1 ) #draw chekerGrid x0 = w/2 y0 = h/2 w2 = w/2 h2 = h/2 painter.setBrush( Qt.white ) painter.drawRect( x0, y0, w2, h2 ) painter.setBrush( QColor.fromRgbF( 0.5, 0.5, 0.5 ) ) for y in range( 4 ): for x in range( w2/10 ): if (x % 2) == (y % 2): painter.drawRect( x0 + x * 10, y0 + y * 10, 10, 10 ) #right 2/3 for color with alpha painter.setBrush( self.previewColor ) painter.drawRect( x0, y0, w2+1, h2 + 1 )
def paintEvent( self, event ): painter = QtGui.QPainter( self ) color = QColor.fromRgbF( 0, 0, 0 ) # color.setAlphaF( 0.5 ) painter.setPen( Qt.NoPen ) painter.setBrush( color ) painter.drawRect( event.rect() )
def onTextRGBChanged( self, value ): if self.updating: return r = self.ui.numR.value() g = self.ui.numG.value() b = self.ui.numB.value() color = QColor.fromRgbF( r,g,b ) color.setAlphaF( self.currentColor.alphaF() ) self.setColor( color ) self.updateColorPlane()
def data(self, index, role): if index.column() == KTextEditor.CodeCompletionModel.Name: name, (r, g, b) = self.resultList[index.row()] if role == Qt.DisplayRole: return name elif role == KTextEditor.CodeCompletionModel.CustomHighlight: format = QTextFormat() color = QColor.fromRgbF(r, g, b) format.setBackground(QBrush(color)) return [0, len(name), format] return super(ColorCompletions, self).data(index, role)
def paintEvent(self, ev): """ IceAndFire = Colormap("IceAndFire", (0.00, (0.0, 0.0, 1.0)), (0.25, (0.0, 0.5, 1.0)), (0.50, (1.0, 1.0, 1.0)), (0.75, (1.0, 1.0, 0.0)), (1.00, (1.0, 0.0, 0.0))) """ painter = QPainter() painter.begin(self) g = QLinearGradient(0, 0, self.width(), self.height()) g.setColorAt(0., QColor.fromRgbF(0.0, 0.0, 1.0)) g.setColorAt(0.25, QColor.fromRgbF(0.0, 0.5, 1.0)) g.setColorAt(0.5, QColor.fromRgbF(1.0, 1., 1.0)) g.setColorAt(0.75, QColor.fromRgbF(1.0, 1., 0.)) g.setColorAt(1., QColor.fromRgbF(1.0, 0., 0.)) painter.setBrush(QBrush(g)) painter.fillRect(0, 0, self.width(), self.height(), g) painter.end()
def paintEvent(self, ev): """ IceAndFire = Colormap("IceAndFire", (0.00, (0.0, 0.0, 1.0)), (0.25, (0.0, 0.5, 1.0)), (0.50, (1.0, 1.0, 1.0)), (0.75, (1.0, 1.0, 0.0)), (1.00, (1.0, 0.0, 0.0))) """ painter=QPainter() painter.begin(self) g = QLinearGradient(0,0,self.width(), self.height()) g.setColorAt(0., QColor.fromRgbF(0.0, 0.0, 1.0)) g.setColorAt(0.25, QColor.fromRgbF(0.0, 0.5, 1.0)) g.setColorAt(0.5, QColor.fromRgbF(1.0, 1., 1.0)) g.setColorAt(0.75, QColor.fromRgbF(1.0, 1., 0.)) g.setColorAt(1., QColor.fromRgbF(1.0, 0., 0.)) painter.setBrush(QBrush(g)) painter.fillRect(0, 0, self.width(), self.height(), g) painter.end()
def drawEics(self, data): for chrom in data: color = QColor.fromRgbF(*(chrom.sample.color+(.5,))) c=self.pw.plotItem.plot(x=chrom.x_data, y=chrom.y_data, pen=color) #c = Line(chrom.x_data, chrom.y_data, # color, # parent=self.pw.plotItem.vb, # scene=self.pw.scene()) self.drawnItems[chrom.sample] = c #self.pw.addItem(c) #self.pw.plotItem.curves.append(c) self.emit(SIGNAL('linePlotted'), chrom.sample.shortName()) if self.flags != 'peaks': self.pw.autoRange()
def mix(color1, color2, bias=0.5): def mix_real(a, b, bias): return a + (b - a) * bias if bias <= 0.0: return color1 if bias >= 1.0: return color2 if isnan(bias): return color1 r = mix_real(color1.redF(), color2.redF(), bias) g = mix_real(color1.greenF(), color2.greenF(), bias) b = mix_real(color1.blueF(), color2.blueF(), bias) a = mix_real(color1.alphaF(), color2.alphaF(), bias) return QColor.fromRgbF(r, g, b, a)
def updateColor(self): """ Update the color on the sampleModel modify to fit to the actual view """ if not self.view.sampleTableView.selectedIndexes( ): #not self.acTree.selectedIndexes(): return idx = self.view.sampleTableView.selectedIndexes()[0] sample = self.model.sample(idx.data().toString(), fullNameEntry=False) if sample is None: self.view.showErrorMessage('Error', 'Please choose only one file...') return color = QColorDialog.getColor() if not color.isValid(): return sample.color = color.getRgbF()[:-1] #make the gradient color here to color = QColor.fromRgbF(*(sample.color + (1., ))) colorr = QColor.fromRgbF(*(sample.color + (.5, ))) gradient = QLinearGradient(-100, -100, 100, 100) gradient.setColorAt(0.7, colorr) gradient.setColorAt(1, color) #for m in (self.view.sampleModel, self.view.spectraModel, self.view.peakModel, # self.view.clusterModel):#self.view.chromaModel, for i in xrange(self.view.sampleModel.rowCount()): item = self.view.sampleModel.item(i, 0) if item.text() == sample.shortName(): item.setBackground(QBrush(gradient))
def drawEics(self, data): for chrom in data: color = QColor.fromRgbF(*(chrom.sample.color + (.5, ))) c = self.pw.plotItem.plot(x=chrom.x_data, y=chrom.y_data, pen=color) #c = Line(chrom.x_data, chrom.y_data, # color, # parent=self.pw.plotItem.vb, # scene=self.pw.scene()) self.drawnItems[chrom.sample] = c #self.pw.addItem(c) #self.pw.plotItem.curves.append(c) self.emit(SIGNAL('linePlotted'), chrom.sample.shortName()) if self.flags != 'peaks': self.pw.autoRange()
def paint( self, painter, option, index ): self.initStyleOption(option,index) style = option.widget.style() or QApplication.style() #draw icon option.text = "" style.drawControl( QStyle.CE_ItemViewItem, option, painter,option.widget) painter.save() item = self.tree.itemFromIndex( index ) colorData = item.userdata color = QColorF( *colorData.get( 'color', (1,1,1,1) ) ) rect = option.rect margin = 2 rect.adjust( margin,0,-margin,-margin*2 ) w = rect.width() h = rect.height() gridSize = 5 gridPart = gridSize * 1 painter.translate( rect.x(), rect.y() ) painter.translate( margin, margin ) painter.setPen( Qt.black ) painter.setBrush( Qt.white ) painter.drawRect( 0,0,w,h ) painter.setPen( Qt.NoPen ) painter.setBrush( QColor.fromRgbF( 0.5, 0.5, 0.5 ) ) painter.setClipRect( 0,0,w,h ) for y in range( int(h/gridSize+1) ): for x in range( int(w/gridSize+1) ): if (x % 2) == (y % 2): painter.drawRect( x * gridSize, y * gridSize, gridSize, gridSize ) painter.setBrush( color ) painter.drawRect( 0,0,w,h ) colorFull = QColor( color ) colorFull.setAlpha( 255 ) painter.setBrush( colorFull ) painter.drawRect( 0,0, w/2, h ) # painter.fillRect( rect, color ) # if option.state & QStyle.State_Selected: # painter.setPen ( Qt.white ) # painter.setBrush( Qt.NoBrush ) # painter.drawRect( rect ) painter.restore()
def setCurrentSample(self, sample, idx): if sample.shortName() not in [s.shortName() for s in self.qApp.model]: print ("Can not set sample...") return self.currentSample[idx-1] = sample if idx == 1: goodLabel = self.view.spectraLabel elif idx == 2: goodLabel = self.view.peakLabel elif idx == 3: goodLabel = self.view.clusterLabel else: print ("Error, must return") return goodLabel.setText(": ".join([str(goodLabel.text().split(':')[0]), self.currentSample[idx-1].shortName()])) color =QColor.fromRgbF(*sample.color+(1.,)) palette = goodLabel.palette() palette.setColor(goodLabel.foregroundRole(), color) goodLabel.setPalette(palette) #works well !
def qColor(self): r = fmod(self.h, 1.0) h = r+1.0 if r < 0.0 else r c = limit(self.c, min=0.0, max=1.0) y = limit(self.y, min=0.0, max=1.0) hs = h * 6.0 if hs < 1.0: th = hs tm = self.luma_r + self.luma_g * th elif hs < 2.0: th = 2.0 - hs tm = self.luma_g + self.luma_r * th elif hs < 3.0: th = hs - 2.0 tm = self.luma_g + self.luma_b * th elif hs < 4.0: th = 4.0 - hs tm = self.luma_b + self.luma_g * th elif hs < 5.0: th = hs - 4.0 tm = self.luma_b + self.luma_r * th else: th = 6.0 - hs tm = self.luma_r + self.luma_b * th # calculate RGB channels in the sorted order if tm >= y: tp = y + y * c * (1.0 - tm) / tm to = y + y * c * (th - tm) / tm tn = y - (y * c) else: tp = y + (1.0 - y) * c to = y + (1.0 - y) * c * (th - tm) / (1.0 - tm) tn = y - (1.0 - y) * c * tm / (1.0 - tm) # return RGB channels in the appropriate order if hs < 1.0: return QColor.fromRgbF(self._igamma(tp), self._igamma(to), self._igamma(tn), self.a) elif hs < 2.0: return QColor.fromRgbF(self._igamma(to), self._igamma(tp), self._igamma(tn), self.a) elif hs < 3.0: return QColor.fromRgbF(self._igamma(tn), self._igamma(tp), self._igamma(to), self.a) elif hs < 4.0: return QColor.fromRgbF(self._igamma(tn), self._igamma(to), self._igamma(tp), self.a) elif hs < 5.0: return QColor.fromRgbF(self._igamma(to), self._igamma(tn), self._igamma(tp), self.a) else: return QColor.fromRgbF(self._igamma(tp), self._igamma(tn), self._igamma(to), self.a)
def _parse_qcolor_arrayish(color_spec): if len(color_spec) < 3 or len(color_spec) > 4: raise ValueError("Expecting an array of length 3 or 4") if len(set(type(x) for x in color_spec)) > 1: raise ValueError("All components must have the same type") comp_type = type(color_spec[0]) if comp_type == int: if not all(0 <= x <= 255 for x in color_spec): raise ValueError("Integer components must be in the [0..255] range") return QColor.fromRgb(*color_spec) elif comp_type == float: if not all(0.0 <= x <= 1.0 for x in color_spec): raise ValueError("Float components must be in the [0.0..1.0] range") return QColor.fromRgbF(*color_spec) raise ValueError("Only int and float components are supported")
def setCurrentSample(self, sample, idx): if sample.shortName() not in [s.shortName() for s in self.qApp.model]: print("Can not set sample...") return self.currentSample[idx - 1] = sample if idx == 1: goodLabel = self.view.spectraLabel elif idx == 2: goodLabel = self.view.peakLabel elif idx == 3: goodLabel = self.view.clusterLabel else: print("Error, must return") return goodLabel.setText(": ".join([ str(goodLabel.text().split(':')[0]), self.currentSample[idx - 1].shortName() ])) color = QColor.fromRgbF(*sample.color + (1., )) palette = goodLabel.palette() palette.setColor(goodLabel.foregroundRole(), color) goodLabel.setPalette(palette) #works well !
def paintEvent(self, event): if self._isRunning: anglestep = 360. / self._steps fillsteps = self._fillsteps factor = min(self.width(), self.height()) / 16. bw = self._bw p = QPainter(self) p.setRenderHint(QPainter.Antialiasing, True) p.scale(factor, factor) p.setPen(Qt.NoPen) for i in range(self._steps): x1, y1 = self._coords[i] c = fillsteps[self._steps - 1 - i] a = anglestep * i p.setBrush(QBrush(QColor.fromRgbF(bw, bw, bw, c))) p.save() p.translate(x1 - 2, y1 - 1) p.translate(2, 1) p.rotate(a) p.translate(-2, -1) p.drawPath(self._path) p.restore()
'__doc__', '__import__', '__name__', '__package__', ]) BUILTIN = set([ 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'bytearray', 'bytes', 'chr', 'classmethod', 'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip' ]) TOKEN_CLASSES = [ (RESERVED, 500, QColor.fromRgbF(0.7, 0.05, 0.05)), (EXCEPTIONS, 400, QColor.fromRgbF(0.3, 0.1, 0.1)), (CONSTANTS, 600, QColor.fromRgbF(0.1, 0.1, 0.3)), (META, 300, QColor.fromRgbF(0.8, 0.0, 0.8)), (BUILTIN, 350, QColor.fromRgbF(0.1, 0.6, 0.5)), ] IGNORE_TOKENS = set([ python_tokens['NEWLINE'], python_tokens['NL'], python_tokens['INDENT'], python_tokens['DEDENT'] ]) class MpCodeDocument(QTextDocument): def __init__(self, module, parent):
def _plotting(self, data): """ refactor this shit c = Line(chrom.x_data, chrom.y_data, QColor.fromRgbF(*(self.ref.sample.color+(.7,))), parent=self.pw.plotItem.vb, scene=self.pw.scene()) #test scatter plot self.scatter = ScatterPlotItem(x=chrom.x_data, y=chrom.y_data) self.pw.addDataItem(self.scatter) self.scatter.sigClicked.connect(self.requestSpectra) """ if self.flags == 'peak': self.connect(self.pw.plotItem.vb, SIGNAL('showDiffOrSpectra(PyQt_PyObject)'), self.drawSpectra) self.ref = sorted([e for e in data if e is not None], key=lambda x: x.height)[-1] ppm = self.view.ppmEditer.value() if self.view.usePpm.isChecked( ) else self.ref.sample.ppm chrom = self.ref.sample.massExtraction(self.ref.mass(), ppm, asChromatogram=True) #show labels self.textLabels += self.showTextLabel(chrom.x_data, chrom.y_data) #drawing color = QColor.fromRgbF(*self.ref.sample.color + (.5, )) c = self.pw.plotItem.plot(chrom.x_data, chrom.y_data, pen=color) self.drawnItems[self.ref.sample] = c # peak's pixmap on the ref peak pix = PeakArrowItem(self.ref, pen=color, brush=color, pos=(self.ref.rt, self.ref.height + (self.ref.height * 6) / 100.), angle=-90, parent=self.pw.plotItem.vb) pix.setZValue(1000) self.pw.addItem(pix) #both these connections are emitted #in peak Indicator by effictivamente qApp self.connect(qApp.instance(), SIGNAL("highlightRequested"), c.setHighlighted) self.connect(qApp.instance(), SIGNAL('updateBarPlot'), self.barPlot.setPeakGroup) # self.emit(SIGNAL('linePlotted'), self.ref.sample.shortName()) #if qApp.instance().lowMemory: # chromatograms=[el.sample.loadAndExtract(el.mass(), el.sample.ppm, asChromatogram=True) \ # for el in data if el != ref and el is not None] #else: ppm = self.view.ppmEditer.value() if self.view.usePpm.isChecked( ) else self.ref.sample.ppm chromatograms=[el.sample.massExtraction(el.mass(), ppm, asChromatogram=True) \ for el in data if el is not None and el != self.ref] self.drawEics(chromatograms) #initialisation zoom on the peak self.pw.setYRange(0., self.ref.height + (self.ref.height * 12) / 100.) self.pw.setXRange(self.ref.rtmin - 20, self.ref.rtmax + 20) elif self.flags == 'chroma': ref = [d for d in data if d is not None] if not ref: print "Error, empty data to plot" return self.ref = ref[0] self.textLabels += self.showTextLabel(self.ref.x_data, self.ref.y_data) self.drawEics(data) else: #spectrum if not data: #print "NOTHING TO PLOT" return self.ref = data[0] for el in data: c = SpectrumItem(el, centroid=True, scene=self.pw.scene()) self.pw.addItem(c) self.drawnItems[el.sample] = c self.pw.plotItem.curves.append(c) self.emit(SIGNAL('linePlotted'), el.sample.shortName()) #just put time information if data: i = 0 while data[i] is None and i < len(data): i += 1 self.textLabels += self.showTextLabel(data[i].x_data, data[i].y_data) #setting the range #warning: autoRange pw function does not work well #on spectrum item maxY = max([el.y_data.max() for el in data]) minX, maxX = min([el.x_data.min() for el in data ]), max([el.x_data.max() for el in data]) self.pw.setXRange(minX, maxX, padding=0) self.pw.setYRange(0., maxY, padding=0)
def __init__( self, *args ): super(ColorPickerWidget, self).__init__( *args ) self.updating = False self.updatingAlpha = False self.ui = ColorPickerForm() self.ui.setupUi( self ) # self.setWindowFlags( Qt.Popup ) self.preview = ColorPreviewWidget( self.ui.containerPreview ) self.hueSlider = HueSliderWidget( self.ui.containerHueSlider ) self.alphaSlider = AlphaSliderWidget( self.ui.containerAlphaSlider ) self.colorPlane = ColorPlaneWidget( self.ui.containerColorPlane ) self.hueSlider .valueChanged .connect( self.onHueChanged ) self.alphaSlider .valueChanged .connect( self.onAlphaSliderChanged ) self.colorPlane .valueChanged .connect( self.onColorBaseChanged ) self.preview.clicked.connect( self.onColorPreviewClicked ) self.ui.buttonOK .clicked .connect( self.onButtonOK ) self.ui.buttonCancel .clicked .connect( self.onButtonCancel ) self.ui.buttonCopyHEX .clicked .connect( self.onButtonCopyHEX ) self.ui.buttonCopyRGB .clicked .connect( self.onButtonCopyRGBA ) self.ui.buttonCopyHSV .clicked .connect( self.onButtonCopyHSV ) self.ui.buttonScreenPick.clicked.connect( self.onButtonScreenPick ) self.ui.numR.valueChanged.connect( self.onTextRGBChanged ) self.ui.numG.valueChanged.connect( self.onTextRGBChanged ) self.ui.numB.valueChanged.connect( self.onTextRGBChanged ) self.ui.numH.valueChanged.connect( self.onTextHSVChanged ) self.ui.numS.valueChanged.connect( self.onTextHSVChanged ) self.ui.numV.valueChanged.connect( self.onTextHSVChanged ) self.ui.textHex.textChanged.connect( self.onTextHexChanged ) self.ui.textHex.returnPressed.connect( self.onTextHexEntered ) # self.ui.textHex.installEventFilter( self ) self.ui.numA.valueChanged.connect( self.onAlphaSliderChanged ) self.originalColor = QColor.fromRgbF( 0.0, 0.0, 0.0 ) self.currentColor = QColor.fromRgbF( 1.0, 1.0, 0.0 ) self.preview.setColor( self.currentColor ) self.preview.setOriginalColor( self.originalColor ) self.updateAlphaWidgets() self.updateTextWidgets() self.updateColorPlane() self.paletteToolbar = toolbar = QtGui.QToolBar( self.ui.containerToolbar ) toolbar.setSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) toolbar.setIconSize( QtCore.QSize( 16, 16 ) ) toolbar.setToolButtonStyle( Qt.ToolButtonTextOnly ) layout = QtGui.QHBoxLayout( self.ui.containerToolbar ) layout.addWidget( toolbar ) layout.setSpacing( 0 ) layout.setMargin( 0 ) self.actionAddPalette = toolbar.addAction( '+ Pal' ) self.actionRemovePalette = toolbar.addAction( '- Pal' ) toolbar.addSeparator() self.actionUpdateColor = toolbar.addAction( 'Update' ) self.actionMatchColor = toolbar.addAction( 'Match' ) toolbar.addSeparator() self.actionAddColor = toolbar.addAction( '+' ) self.actionRemoveColor = toolbar.addAction( '-' ) # self.screenPicker.grabMouse() self.listPalettes = PaletteList( self.ui.containerCategory ) self.listPaletteItems = PaletteItemList( self.ui.containerItems ) self.listPalettes.owner = self self.listPaletteItems.owner = self # self.listPaletteItems.addColorData( {} ) #palette data self.palettes = [] self.currentPalette = None self.actionAddPalette.triggered.connect( self.onAddPalette ) self.actionRemovePalette.triggered.connect( self.onRemovePalette ) self.actionAddColor.triggered.connect( self.onAddColor ) self.actionRemoveColor.triggered.connect( self.onRemoveColor ) self.actionUpdateColor.triggered.connect( self.onUpdateColor ) self.actionMatchColor.triggered.connect( self.onMatchColor ) self.paletteProvider = None self.refreshPalettes()
def _plotting(self, data): """ refactor this shit c = Line(chrom.x_data, chrom.y_data, QColor.fromRgbF(*(self.ref.sample.color+(.7,))), parent=self.pw.plotItem.vb, scene=self.pw.scene()) #test scatter plot self.scatter = ScatterPlotItem(x=chrom.x_data, y=chrom.y_data) self.pw.addDataItem(self.scatter) self.scatter.sigClicked.connect(self.requestSpectra) """ if self.flags == 'peak': self.connect(self.pw.plotItem.vb, SIGNAL('showDiffOrSpectra(PyQt_PyObject)'), self.drawSpectra) self.ref = sorted([e for e in data if e is not None], key=lambda x:x.height)[-1] ppm = self.view.ppmEditer.value() if self.view.usePpm.isChecked() else self.ref.sample.ppm chrom = self.ref.sample.massExtraction(self.ref.mass(), ppm, asChromatogram=True) #show labels self.textLabels += self.showTextLabel(chrom.x_data, chrom.y_data) #drawing color = QColor.fromRgbF(*self.ref.sample.color +(.5, )) c = self.pw.plotItem.plot(chrom.x_data, chrom.y_data, pen=color) self.drawnItems[self.ref.sample] = c # peak's pixmap on the ref peak pix= PeakArrowItem(self.ref, pen=color, brush=color, pos=(self.ref.rt, self.ref.height + (self.ref.height * 6) / 100.), angle=-90, parent=self.pw.plotItem.vb) pix.setZValue(1000) self.pw.addItem(pix) #both these connections are emitted #in peak Indicator by effictivamente qApp self.connect(qApp.instance(), SIGNAL("highlightRequested"), c.setHighlighted) self.connect(qApp.instance(), SIGNAL('updateBarPlot'), self.barPlot.setPeakGroup) # self.emit(SIGNAL('linePlotted'), self.ref.sample.shortName()) #if qApp.instance().lowMemory: # chromatograms=[el.sample.loadAndExtract(el.mass(), el.sample.ppm, asChromatogram=True) \ # for el in data if el != ref and el is not None] #else: ppm = self.view.ppmEditer.value() if self.view.usePpm.isChecked() else self.ref.sample.ppm chromatograms=[el.sample.massExtraction(el.mass(), ppm, asChromatogram=True) \ for el in data if el is not None and el != self.ref] self.drawEics(chromatograms) #initialisation zoom on the peak self.pw.setYRange(0., self.ref.height + (self.ref.height * 12) / 100.) self.pw.setXRange(self.ref.rtmin - 20, self.ref.rtmax + 20) elif self.flags == 'chroma': ref = [d for d in data if d is not None] if not ref: print "Error, empty data to plot" return self.ref = ref[0] self.textLabels+=self.showTextLabel(self.ref.x_data, self.ref.y_data) self.drawEics(data) else:#spectrum if not data: #print "NOTHING TO PLOT" return self.ref = data[0] for el in data: c=SpectrumItem(el, centroid=True, scene=self.pw.scene()) self.pw.addItem(c) self.drawnItems[el.sample] = c self.pw.plotItem.curves.append(c) self.emit(SIGNAL('linePlotted'), el.sample.shortName()) #just put time information if data: i=0 while data[i] is None and i < len(data): i+=1 self.textLabels+=self.showTextLabel(data[i].x_data, data[i].y_data) #setting the range #warning: autoRange pw function does not work well #on spectrum item maxY = max([el.y_data.max() for el in data]) minX, maxX = min([el.x_data.min() for el in data]), max([el.x_data.max() for el in data]) self.pw.setXRange(minX, maxX, padding=0) self.pw.setYRange(0., maxY, padding=0)