Changeset 3501:03e71a339b77 in orange


Ignore:
Timestamp:
04/06/07 09:18:50 (7 years ago)
Author:
Gregor <Gregor@…>
Branch:
default
Convert:
4ad3c6e2eb6cea12cfaa518f8da6f041aa087936
Message:
  • bugFix. A QColor was not hashable on some machines. added .getRGB function
File:
1 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/OWGraphTools.py

    r3487 r3501  
    1919class ColorPaletteGenerator: 
    2020    maxHueVal = 260 
    21      
     21 
    2222    def __init__(self, numberOfColors = 0, rgbColors = defaultRGBColors): 
    2323        self.rgbColors = rgbColors 
     
    2525        if rgbColors: 
    2626            self.rgbQColors = [QColor(*color) for color in self.rgbColors] 
    27          
     27 
    2828 
    2929    def __getitem__(self, index, brightness = None): 
    3030        if type(index) == tuple: 
    3131            index, brightness = index 
    32              
     32 
    3333        if self.numberOfColors == -1:     # is this color for continuous attribute? 
    3434            col = QColor() 
     
    4848                col.setHsv(index*self.maxHueVal, brightness or 255, 255) 
    4949                return col 
    50         
     50 
     51    def getRGB(self, index, brightness = None): 
     52        if self.numberOfColors == -1:     # is this color for continuous attribute? 
     53            col = QColor() 
     54            col.setHsv(index*self.maxHueVal, brightness or 255, 255)     # index must be between 0 and 1 
     55            return (col.red(), col.green(), col.blue()) 
     56        else: 
     57            if index < len(self.rgbColors): 
     58                if brightness == None: 
     59                    return self.rgbColors[index] 
     60                else: 
     61                    color = QColor(*self.rgbColors[index]) 
     62                    h,s,v = color.getHsv() 
     63                    color.setHsv(h, int(brightness), v) 
     64                    return (col.red(), col.green(), col.blue()) 
     65            else: 
     66                col = QColor() 
     67                col.setHsv(index*self.maxHueVal, brightness or 255, 255) 
     68                return (col.red(), col.green(), col.blue()) 
    5169 
    5270    # get QColor instance for given index 
     
    6684        self.darkest = darkest 
    6785        self.hueValues = [] 
    68          
     86 
    6987        if numberOfColors == -1: return  # used for coloring continuous variables 
    7088        else: 
     
    7795        else:                                                                           # get color for discrete attribute 
    7896            return QColor(self.values[index], self.values[index], self.values[index])   # index must be between 0 and self.numberofColors 
    79                  
     97 
    8098    # get QColor instance for given index 
    8199    def getColor(self, index): 
    82100        return self.__getitem__(index) 
    83      
    84          
     101 
     102 
    85103 
    86104# #################################################################### 
     
    91109        val += (v1[i]-v2[i])**2 
    92110    return sqrt(val) 
    93          
     111 
    94112 
    95113# #################################################################### 
     
    115133        self.setStyle(QwtCurve.Lines) 
    116134        self.setPen(QPen(QColor(128,128,128), 1, pen)) 
    117          
     135 
    118136    def addPoint(self, xPoint, yPoint): 
    119137        xVals = [] 
     
    171189 
    172190    # is point defined at x,y inside a rectangle defined with this curve 
    173     def isInside(self, x, y):        
     191    def isInside(self, x, y): 
    174192        xMap = self.parentPlot().canvasMap(self.xAxis()) 
    175193        yMap = self.parentPlot().canvasMap(self.yAxis()) 
     
    205223        if min(x1,x2) > max(X1, X2) or max(x1,x2) < min(X1,X2): return (0, 0, 0) 
    206224        if min(y1,y2) > max(Y1, Y2) or max(y1,y2) < min(Y1,Y2): return (0, 0, 0) 
    207          
     225 
    208226        if x2-x1 != 0: k1 = (y2-y1)/(x2-x1) 
    209227        else:          k1 = 1e+12 
    210          
     228 
    211229        if X2-X1 != 0: k2 = (Y2-Y1)/(X2-X1) 
    212230        else:          k2 = 1e+12 
     
    251269        for i in range(start, stop, 2): 
    252270            QwtPlotCurve.drawLines(self, painter, xMap, yMap, i, i+1) 
    253              
     271 
    254272 
    255273# ########################################################### 
     
    284302 
    285303        th = p.fontMetrics().height(); 
    286         tw = p.fontMetrics().width(self.label());  
     304        tw = p.fontMetrics().width(self.label()); 
    287305        r = QRect(x + 4, y - th/2 - 2, tw + 4, th + 4) 
    288306        p.fillRect(r, QBrush(self.backColor)) 
    289307        p.drawText(r, Qt.AlignHCenter + Qt.AlignVCenter, self.label()); 
    290          
    291  
    292 # #################################################################### 
    293 #  
     308 
     309 
     310# #################################################################### 
     311# 
    294312class errorBarQwtPlotCurve(QwtPlotCurve): 
    295313    def __init__(self, parent = None, text = None, connectPoints = 0, tickXw = 0.1, tickYw = 0.1, showVerticalErrorBar = 1, showHorizontalErrorBar = 0): 
     
    304322        # save ex settings 
    305323        pen = p.pen() 
    306          
     324 
    307325        self.setPen( self.symbol().pen() ) 
    308326        p.setPen( self.symbol().pen() ) 
    309327        if self.style() == QwtCurve.UserCurve: 
    310328            back = p.backgroundMode() 
    311              
     329 
    312330            p.setBackgroundMode(Qt.OpaqueMode) 
    313331            if t < 0: t = self.dataSize() - 1 
     
    360378        # restore ex settings 
    361379        p.setPen(pen) 
    362          
     380 
    363381# #################################################################### 
    364382# draw labels for discrete attributes 
     
    379397    def __init__(self, *args): 
    380398        QwtScaleDraw.__init__(self, *args) 
    381          
     399 
    382400    def label(self, value): 
    383401        return QString.null 
Note: See TracChangeset for help on using the changeset viewer.