Exemple #1
0
    def paintEvent(self, event):
        QtWidgets.QWidget.paintEvent(self, event)

        #Skip this if too small, if splitter is all the way over

        painter = QtGui.QPainter(self)
        try:
            rect = self.contentsRect().adjusted(5, 5, -5, -5)
            painter.save()

            painter.fillRect(rect,
                             QtGui.qApp.palette().color(QtGui.QPalette.Base))

            if len(self.__history) > 1:
                stepWidth = rect.width() / float(len(self.__history) - 1)
                ratioHeight = (rect.height() - 2) / float(self.__max)

                # Box outline
                painter.setPen(QtCore.Qt.black)
                painter.drawRect(rect)

                painter.setPen(self.__color)
                points = QtGui.QPolygon(len(self.__history) + 2)

                # Bottom left
                #points.setPoint(0, rect.bottomLeft())
                points.setPoint(0, rect.left() + 1, rect.bottom())

                # All the data points
                num = 1
                for i in range(len(self.__history)):
                    points.setPoint(
                        num, max(rect.x() + 1,
                                 rect.x() - 1 + stepWidth * i),
                        rect.bottom() - ratioHeight * self.__history[i])
                    num += 1

                # Bottom right
                points.setPoint(num, rect.bottomRight())

                # Draw filled in
                painter.setBrush(self.__brush)
                painter.drawPolygon(points)

                # Draw subscription size line
                painter.setPen(QtCore.Qt.red)
                height = rect.bottom() - ratioHeight * self.__line
                painter.drawLine(rect.left() + 1, height,
                                 rect.right() - 1, height)

        finally:
            painter.restore()
            painter.end()
            del painter
Exemple #2
0
    def paint(self, painter, option, index):
        if index.data(QtCore.Qt.UserRole) == Constants.TYPE_HOST:
            hostItem = self.parent().itemFromIndex(index)
            host = hostItem.rpcObject

            painter.save()
            try:
                self._drawBackground(painter, option, index)

                if len(hostItem.coresHistory) > 1:
                    stepWidth = option.rect.width() / float(
                        len(hostItem.coresHistory) - 1)
                    ratioHeight = (option.rect.height() - 2) / float(
                        host.data.cores)

                    painter.setPen(QtCore.Qt.black)
                    painter.drawRect(option.rect)

                    painter.setPen(self.__color)

                    points = QtGui.QPolygon(len(hostItem.coresHistory) + 2)
                    points.setPoint(0, option.rect.bottomLeft())
                    num = 1
                    for i in range(len(hostItem.coresHistory)):
                        points.setPoint(
                            num,
                            option.rect.x() + stepWidth * i,
                            option.rect.bottom() -
                            ratioHeight * hostItem.coresHistory[i])
                        num += 1
                    points.setPoint(num, option.rect.bottomRight())

                    painter.setBrush(self.__brush)

                    painter.drawPolygon(points)

                if option.state & QtWidgets.QStyle.State_Selected:
                    self._drawSelectionOverlay(painter, option)
            finally:
                painter.restore()
                del painter
        else:
            AbstractDelegate.paint(self, painter, option, index)