def calculateDatasets(self, scene, axes, datasets):
        """
        Builds the datasets for this renderer.  Each renderer will need to
        subclass and implemenent this method, otherwise, no data will be
        shown in the chart.
        
        :param      scene | <XChartScene>
                    axes | [<
                    datasets | [<XChartDataset>, ..]
        """
        items = self.calculateDatasetItems(scene, datasets)
        if not items:
            scene.clear()
            return
        
        rect = self.buildData('axis_rect')
        half_size = self.maximumBarSize() / 2.0
        
        for dataset, item in items.items():
            path = QPainterPath()
            subpaths = []
            
            for value in dataset.values():
                pos = self.pointAt(axes, value)
                
                radius = min(rect.bottom() - pos.y(), 8)
                
                subpath = QPainterPath()
                
                # create a vertical bar graph
                if self.orientation() == Qt.Vertical:
                    subpath.moveTo(pos.x() - half_size, rect.bottom())
                    subpath.lineTo(pos.x() - half_size, pos.y() + radius)
                    subpath.quadTo(pos.x() - half_size, pos.y(),
                                   pos.x() - half_size + radius, pos.y())
                    subpath.lineTo(pos.x() + half_size - radius, pos.y())
                    subpath.quadTo(pos.x() + half_size, pos.y(),
                                   pos.x() + half_size, pos.y() + radius)
                    subpath.lineTo(pos.x() + half_size, rect.bottom())
                    subpath.lineTo(pos.x() - half_size, rect.bottom())
                
                # create a horizontal bar graph
                else:
                    subpath.moveTo(rect.left(), pos.y() - half_size)
                    subpath.lineTo(pos.x(),     pos.y() - half_size)
                    subpath.lineTo(pos.x(),     pos.y() + half_size)
                    subpath.lineTo(rect.left(), pos.y() + half_size)
                    subpath.lineTo(rect.left(), pos.y() - half_size)
                
                path.addPath(subpath)
                subpaths.append(subpath)
            
            item.setPath(path)
            item.setBuildData('subpaths', subpaths)
def calculateDatasets ( self , scene , axes , datasets ) : items = self . calculateDatasetItems ( scene , datasets ) if not items : scene . clear ( ) return rect = self . buildData ( 'axis_rect' ) half_size = self . maximumBarSize ( ) / 2.0 for dataset , item in items . items ( ) : path = QPainterPath ( ) subpaths = [ ] for value in dataset . values ( ) : pos = self . pointAt ( axes , value ) radius = min ( rect . bottom ( ) - pos . y ( ) , 8 ) subpath = QPainterPath ( ) if self . orientation ( ) == Qt . Vertical : subpath . moveTo ( pos . x ( ) - half_size , rect . bottom ( ) ) subpath . lineTo ( pos . x ( ) - half_size , pos . y ( ) + radius ) subpath . quadTo ( pos . x ( ) - half_size , pos . y ( ) , pos . x ( ) - half_size + radius , pos . y ( ) ) subpath . lineTo ( pos . x ( ) + half_size - radius , pos . y ( ) ) subpath . quadTo ( pos . x ( ) + half_size , pos . y ( ) , pos . x ( ) + half_size , pos . y ( ) + radius ) subpath . lineTo ( pos . x ( ) + half_size , rect . bottom ( ) ) subpath . lineTo ( pos . x ( ) - half_size , rect . bottom ( ) ) else : subpath . moveTo ( rect . left ( ) , pos . y ( ) - half_size ) subpath . lineTo ( pos . x ( ) , pos . y ( ) - half_size ) subpath . lineTo ( pos . x ( ) , pos . y ( ) + half_size ) subpath . lineTo ( rect . left ( ) , pos . y ( ) + half_size ) subpath . lineTo ( rect . left ( ) , pos . y ( ) - half_size ) path . addPath ( subpath ) subpaths . append ( subpath ) item . setPath ( path ) item . setBuildData ( 'subpaths' , subpaths )
Builds the datasets for this renderer.  Each renderer will need to
        subclass and implemenent this method, otherwise, no data will be
        shown in the chart.
        
        :param      scene | <XChartScene>
                    axes | [<
                    datasets | [<XChartDataset>, ..]