def _get_color (self, value, asQColor=False, alpha=0.5): ''' Get interpolated color from value ''' if not len(self.vcolors): return (0.,0.,0.,self.alpha) elif len(self.vcolors) == 1: return self.vcolors[0][1] elif value < 0.0: return self.vcolors[0][1] elif value > 1.0: return self.vcolors[-1][1] sup_color = self.vcolors[0] inf_color = self.vcolors[-1] for i in xrange (len(self.vcolors)-1): if value < self.vcolors[i+1][0]: inf_color = self.vcolors[i] sup_color = self.vcolors[i+1] break r = (value-inf_color[0])/(sup_color[0]-inf_color[0]) if not asQColor: return (sup_color[1][0]*r + inf_color[1][0]*(1-r), sup_color[1][1]*r + inf_color[1][1]*(1-r), sup_color[1][2]*r + inf_color[1][2]*(1-r)) from PyQt4.QtGui import QColor q = QColor() q.setRedF(sup_color[1][0]*r + inf_color[1][0]*(1-r)) q.setGreen(sup_color[1][1]*r + inf_color[1][1]*(1-r)) q.setBlueF(sup_color[1][2]*r + inf_color[1][2]*(1-r)) q.setAlphaF(alpha) return q
def _get_color(self, value, asQColor=False, alpha=0.5): ''' Get interpolated color from value ''' if not len(self.vcolors): return (0., 0., 0., self.alpha) elif len(self.vcolors) == 1: return self.vcolors[0][1] elif value < 0.0: return self.vcolors[0][1] elif value > 1.0: return self.vcolors[-1][1] sup_color = self.vcolors[0] inf_color = self.vcolors[-1] for i in xrange(len(self.vcolors) - 1): if value < self.vcolors[i + 1][0]: inf_color = self.vcolors[i] sup_color = self.vcolors[i + 1] break r = (value - inf_color[0]) / (sup_color[0] - inf_color[0]) if not asQColor: return (sup_color[1][0] * r + inf_color[1][0] * (1 - r), sup_color[1][1] * r + inf_color[1][1] * (1 - r), sup_color[1][2] * r + inf_color[1][2] * (1 - r)) from PyQt4.QtGui import QColor q = QColor() q.setRedF(sup_color[1][0] * r + inf_color[1][0] * (1 - r)) q.setGreen(sup_color[1][1] * r + inf_color[1][1] * (1 - r)) q.setBlueF(sup_color[1][2] * r + inf_color[1][2] * (1 - r)) q.setAlphaF(alpha) return q
def getFormat(self, format): color = QColor() color.setRed(self.formats[format]['color'][0]) color.setGreen(self.formats[format]['color'][1]) color.setBlue(self.formats[format]['color'][2]) format = QTextCharFormat() format.setForeground(color) return format
def mergedColors(colorA: QColor, colorB: QColor, factor=50): """ Creates a merged new QColor of colorA and colorB and returns it """ maxFactor = 100 tmp = QColor(colorA) tmp.setRed((tmp.red() * factor) / maxFactor + (colorB.red() * (maxFactor - factor)) / maxFactor) tmp.setGreen((tmp.green() * factor) / maxFactor + (colorB.green() * (maxFactor - factor)) / maxFactor) tmp.setBlue((tmp.blue() * factor) / maxFactor + (colorB.blue() * (maxFactor - factor)) / maxFactor) return tmp
def setTheme(self, color): c = QColor() c.setNamedColor(color) c.setRed(self.qMin(c.red() + 40, 255)) c.setGreen(self.qMin(c.green() + 40, 255)) c.setBlue(self.qMin(c.blue() + 40, 255)) self.myTheme[0] = color self.myTheme[1] = c.name() try: f = open(COLOR_PATH, "w") for item in self.myTheme: f.write("%s\n" % item) f.close() except IOError: self.createConfig()