Changeset 8406:48d15767ac14 in orange


Ignore:
Timestamp:
07/21/11 10:31:06 (3 years ago)
Author:
Noughmad <Noughmad@…>
Branch:
default
Convert:
e5aff79266f2cbd3a90c7c394b6c9ac6cbf807ea
Message:

Tooltip curves and markers in OWLinProjQt

Location:
orange/OrangeWidgets
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Prototypes/OWLinProjGraphQt.py

    r8387 r8406  
    436436 
    437437        canvasPos = self.map_from_widget(e.pos()) 
    438         xFloat = float(canvasPos.x()) 
    439         yFloat = float(canvasPos.y()) 
     438        xFloat, yFloat = self.map_from_graph(canvasPos) 
    440439 
    441440        # in case we are drawing a rectangle, we don't draw enhanced tooltips 
     
    473472 
    474473            (x_i, y_i, color, index, extraString) = nearestPoint 
    475             intX = self.transform(QwtPlot.xBottom, x_i) 
    476             intY = self.transform(QwtPlot.yLeft, y_i) 
     474            intX = self.transform(xBottom, x_i) 
     475            intY = self.transform(yLeft, y_i) 
    477476 
    478477            if self.tooltipKind == LINE_TOOLTIPS and bestDist < 0.05: 
     
    674673    def computePotentials(self): 
    675674        import orangeom 
    676         #rx = self.transform(QwtPlot.xBottom, 1) - self.transform(QwtPlot.xBottom, 0) 
    677         #ry = self.transform(QwtPlot.yLeft, 0) - self.transform(QwtPlot.yLeft, 1) 
    678  
    679         rx = self.transform(QwtPlot.xBottom, 1) - self.transform(QwtPlot.xBottom, -1) 
    680         ry = self.transform(QwtPlot.yLeft, -1) - self.transform(QwtPlot.yLeft, 1) 
    681         ox = self.transform(QwtPlot.xBottom, 0) - self.transform(QwtPlot.xBottom, -1) 
    682         oy = self.transform(QwtPlot.yLeft, -1) - self.transform(QwtPlot.yLeft, 0) 
     675        #rx = self.transform(xBottom, 1) - self.transform(xBottom, 0) 
     676        #ry = self.transform(yLeft, 0) - self.transform(yLeft, 1) 
     677 
     678        rx = self.transform(xBottom, 1) - self.transform(xBottom, -1) 
     679        ry = self.transform(yLeft, -1) - self.transform(yLeft, 1) 
     680        ox = self.transform(xBottom, 0) - self.transform(xBottom, -1) 
     681        oy = self.transform(yLeft, -1) - self.transform(yLeft, 0) 
    683682 
    684683        rx -= rx % self.squareGranularity 
     
    714713            if not (self.potentialsClassifier is getattr(self, "potentialsImageFromClassifier", None)): 
    715714                self.computePotentials() 
    716             target = QRectF(self.transform(QwtPlot.xBottom, -1), self.transform(QwtPlot.yLeft, 1), 
    717                             self.transform(QwtPlot.xBottom, 1) - self.transform(QwtPlot.xBottom, -1), 
    718                             self.transform(QwtPlot.yLeft, -1) - self.transform(QwtPlot.yLeft, 1)) 
     715            target = QRectF(self.transform(xBottom, -1), self.transform(yLeft, 1), 
     716                            self.transform(xBottom, 1) - self.transform(xBottom, -1), 
     717                            self.transform(yLeft, -1) - self.transform(yLeft, 1)) 
    719718            source = QRectF(0, 0, self.potentialsImage.size().width(), self.potentialsImage.size().height()) 
    720719            painter.drawImage(target, self.potentialsImage, source) 
    721 #            painter.drawImage(self.transform(QwtPlot.xBottom, -1), self.transform(QwtPlot.yLeft, 1), self.potentialsImage) 
     720#            painter.drawImage(self.transform(xBottom, -1), self.transform(yLeft, 1), self.potentialsImage) 
    722721        OWPlot.drawCanvas(self, painter) 
    723722         
  • orange/OrangeWidgets/plot/owplot.py

    r8400 r8406  
    197197         
    198198    def map_from_graph(self, point, axes = None): 
    199         (x, y) = point 
    200         ret = QPointF(x, y) * self.map_transform.inverted() 
     199        if type(point) == tuple: 
     200            (x, y) = point 
     201            point = QPointF(x,y) 
     202        t, ok = self.map_transform.inverted() 
     203        ret = point * t 
    201204        return (ret.x(), ret.y()) 
    202205         
     
    323326        c.setAutoUpdate(False) 
    324327        c.setStyle(style) 
    325         c.setColor(brushColor) 
     328         
     329        if pen: 
     330            p = pen 
     331        else: 
     332            p = QPen() 
     333            p.setColor(penColor) 
     334            p.setWidth(lineWidth) 
     335        c.setPen(p) 
     336         
     337        c.setBrush(brushColor) 
     338         
    326339        c.setSymbol(symbol) 
    327340        c.setPointSize(size) 
     
    364377    def add_marker(self, name, x, y, alignment = -1, bold = 0, color = None, brushColor = None, size=None, antiAlias = None,  
    365378                    x_axis_key = xBottom, y_axis_key = yLeft): 
    366         text = name 
    367         if bold: 
    368             text = '<b>' + text + '</b>' 
    369         item = QGraphicsTextItem(parent=self.graph_item, scene=self.scene()) 
    370         item.setHtml(text) 
    371         (dx,dy) = (4,4) 
    372         (px,py) = self.map_to_graph((x,y)) 
    373         item.setPos(px+dx,py+dy) 
    374         if color: 
    375             item.setPen(QPen(color)) 
    376         if brushColor: 
    377             item.setBrush(QBrush(brushColor)) 
    378              
    379         self._marker_items.append((item, x, y, x_axis_key, y_axis_key)) 
     379        m = Marker(name, x, y, alignment, bold, color, brushColor) 
     380        self._marker_items.append((m, x, y, x_axis_key, y_axis_key)) 
     381        m.attach(self) 
     382         
     383        return m 
    380384         
    381385    def removeAllSelections(self): 
     
    393397    def clear_markers(self): 
    394398        for item,x,y,x_axis,y_axis in self._marker_items: 
    395             self.scene().removeItem(item) 
     399            item.detach() 
    396400        self._marker_items = [] 
    397401         
     
    468472        self.zoom_rect = self.zoom_transform.mapRect(self.graph_area) 
    469473        for c in self.itemList(): 
    470             c.set_zoom_factor(self._zoom_factor) 
    471             c.updateProperties() 
     474            if hasattr(c, 'set_zoom_factor'): 
     475                c.set_zoom_factor(self._zoom_factor) 
     476                c.updateProperties() 
    472477        self.graph_item.setTransform(self.zoom_transform) 
    473478        for a in self.axes.values(): 
     
    478483        for item, region in self.selection_items: 
    479484            item.setTransform(self.zoom_transform) 
    480              
     485         
     486        """ 
     487        NOTE: I'm not sure if this is necessary 
    481488        for item,x,y,x_axis,y_axis in self._marker_items: 
    482489            p = QPointF(x,y) * self.transform_for_axes(x_axis, y_axis) * self.zoom_transform + QPointF(4,4) 
    483490            r = item.boundingRect() 
    484491            item.setPos(p - r.center() + r.topLeft()) 
    485              
     492        """ 
     493         
    486494        self.update_axes() 
    487495        self.setViewportUpdateMode(QGraphicsView.FullViewportUpdate) 
  • orange/OrangeWidgets/plot/owtools.py

    r8400 r8406  
    123123        r = self.radius 
    124124        return QRectF(x-r, y-r, 2*r, 2*r) 
     125         
     126class Marker(orangeplot.PlotItem): 
     127    def __init__(self, text, x, y, align, bold = 0, color = None, brushColor = None, size=None): 
     128        orangeplot.PlotItem.__init__(self) 
     129        self._item = QGraphicsTextItem(text, parent=self) 
     130        self._data_point = QPointF(x,y) 
     131        f = self._item.font() 
     132        f.setBold(bold) 
     133        if size: 
     134            f.setPointSize(size) 
     135        self._item.setFont(f) 
     136        self._item.setPos(x, y) 
     137        if color: 
     138            self._item.setPen(QPen(color)) 
     139        if brushColor: 
     140            self._item.setBrush(QBrush(brushColor)) 
     141             
     142    def updateProperties(self): 
     143        self._item.setPos(self.graphTransform().map(self._data_point)) 
Note: See TracChangeset for help on using the changeset viewer.