def paintEvent(self, pe):
   painter = QPainter(self)
   painter.save()
   gradient = QLinearGradient()
   gradient.setStart(self._grad_start)
   gradient.setFinalStop(self._grad_end)
   gradient.setColorAt(0, QColor(230, 230, 230))
   gradient.setColorAt(1, QColor(247, 247, 247))
   brush = QBrush(gradient)
   painter.setBrush(brush)
   pen = QPen(Qt.black)
   pen.setWidth(1)
   painter.setPen(pen)
   painter.drawPath(self._painter_path)
   painter.restore()
   font = QFont()
   font.setFamily("Tahoma")
   font.setPixelSize(11)
   font.setBold(True)
   pen = QPen(Qt.darkGray)
   painter.setPen(pen)
   painter.setFont(font)
   self_rect = QRect(self.rect())
   self_rect.moveTo(self._hor_margin, self._ver_margin // 2)
   painter.drawText(self_rect, Qt.AlignLeft, self._text)
Beispiel #2
0
 def paintEvent(self, pe):
     painter = QPainter(self)
     painter.save()
     gradient = QLinearGradient()
     gradient.setStart(self._grad_start)
     gradient.setFinalStop(self._grad_end)
     gradient.setColorAt(0, QColor(230, 230, 230))
     gradient.setColorAt(1, QColor(247, 247, 247))
     brush = QBrush(gradient)
     painter.setBrush(brush)
     pen = QPen(Qt.black)
     pen.setWidth(1)
     painter.setPen(pen)
     painter.drawPath(self._painter_path)
     painter.restore()
     font = QFont()
     font.setFamily("Tahoma")
     font.setPixelSize(11)
     font.setBold(True)
     pen = QPen(Qt.darkGray)
     painter.setPen(pen)
     painter.setFont(font)
     self_rect = QRect(self.rect())
     self_rect.moveTo(self._hor_margin, self._ver_margin // 2)
     painter.drawText(self_rect, Qt.AlignLeft, self._text)
    def paintEvent(self, event):
        cX = self.parent.leftMargin + self.scaleMarkLen
        cY = self.parent.topMargin + self.scaleMarkLen
        worldX = self.parent.chunkX*16
        worldZ = self.parent.chunkZ*16
        painter = QPainter()
        path = QPainterPath()
        painter.begin(self)
        painter.save()
        #painter.setFont(QFont('Arial Narrow', 8)) #QFont.Bold
        # draw scale
        x = cX
        y = cY
        painter.rotate(-90)
        for i in range(16):
            fr = QRectF(-y, x, self.scaleMarkLen, self.edgeLen)
            painter.drawText(fr, Qt.AlignHCenter | Qt.AlignVCenter, '-5555')
            painter.drawRect(fr)
            #fr = QRectF(-y - 16*self.edgeLen - self.scaleMarkLen, x, self.scaleMarkLen, self.edgeLen)
            #painter.drawText(fr, Qt.AlignHCenter | Qt.AlignVCenter, '-5555')
            #painter.drawRect(fr)
            x += self.edgeLen
        painter.rotate(90)

        x = self.parent.leftMargin
        y = cY
        for i in range(16):
            fr = QRectF(x, y, self.scaleMarkLen, self.edgeLen)
            painter.drawText(fr, Qt.AlignHCenter | Qt.AlignVCenter, '-5555')
            painter.drawRect(fr)
            #fr = QRectF(x + self.scaleMarkLen + 16*self.edgeLen, y, self.scaleMarkLen, self.edgeLen)
            #painter.drawText(fr, Qt.AlignHCenter | Qt.AlignVCenter, '-5555')
            #painter.drawRect(fr)
            y += self.edgeLen

        x = cX
        y = cY
        for i in range(16):
            for j in range(16):
                path.addRect(x, y, self.edgeLen, self.edgeLen)
                fr = QRectF(x, y, self.edgeLen, self.edgeLen)
                #painter.drawText(fr, Qt.AlignHCenter | Qt.AlignVCenter, '-5555')
                x += self.edgeLen
            x = cX
            y += self.edgeLen

        painter.drawPath(path)

        painter.restore()
        painter.end()
        del painter
Beispiel #4
0
    def paint(self, painter, option, widget=None):
        """@reimp @public
    virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0)
    """
        #Q_UNUSED(option)
        #Q_UNUSED(widget)
        d = self.__d
        key = d.hash
        pm = QPixmap()
        if not QPixmapCache.find(key, pm):
            # Set up a convenient path
            path = QPainterPath()
            path.setFillRule(Qt.OddEvenFill)
            path.addEllipse(QPointF(d.actualOuterRadius, d.actualOuterRadius),
                            d.actualOuterRadius, d.actualOuterRadius)
            path.addEllipse(QPointF(d.actualOuterRadius, d.actualOuterRadius),
                            d.actualInnerRadius, d.actualInnerRadius)

            nActualDiameter = 2.0 * d.actualOuterRadius
            pm = QPixmap(nActualDiameter, nActualDiameter)
            pm.fill(Qt.transparent)
            p = QPainter(pm)

            # Draw the ring background
            p.setPen(Qt.NoPen)
            p.setBrush(d.backgroundColor)
            p.setRenderHint(QPainter.Antialiasing)
            p.drawPath(path)

            # Draw the ring foreground
            # TODO: Expose this gradient as Qml Property
            gradient = QConicalGradient(d.actualOuterRadius,
                                        d.actualOuterRadius, 0.0)
            gradient.setColorAt(0.0, Qt.transparent)
            gradient.setColorAt(0.05, d.foregroundColor)
            gradient.setColorAt(0.8, Qt.transparent)

            p.setBrush(gradient)
            p.drawPath(path)
            p.end()

            QPixmapCache.insert(key, pm)

        # Draw pixmap at center of item
        w, h = self.width(), self.height()
        sz = min(w, h)
        painter.drawPixmap(0.5 * (w - sz), 0.5 * (h - sz), pm)
Beispiel #5
0
    def paintEvent(self, pe):
        p = QPainter(self)
        p.setRenderHint(QPainter.Antialiasing)

        pen = QPen()
        pen.setColor(Qt.GlobalColor.black)
        pen.setWidth(2)
        pen.setJoinStyle(Qt.MiterJoin)
        p.setPen(pen)

        h = self.associated_label.sizeHint().height()
        w = h
        pw = pen.width()

        b = self.italic_block(pw+0,w,h)
        p.translate(self.shadow_size,self.shadow_size)
        p.fillPath(b, QBrush(Qt.gray))
        p.translate(-self.shadow_size,-self.shadow_size)
        p.fillPath(b, QBrush(self.Colors[self.step]))
        p.drawPath(b)
        b = self.italic_block(pw+w*1.25,w*0.75,h)
        p.translate(self.shadow_size,self.shadow_size)
        p.fillPath(b, QBrush(Qt.gray))
        p.translate(-self.shadow_size,-self.shadow_size)
        p.fillPath(b, QBrush(self.Colors[self.step+1]))
        p.drawPath(b)
        b = self.italic_block(pw+w*2.25,w*0.4,h)
        p.translate(self.shadow_size,self.shadow_size)
        p.fillPath(b, QBrush(Qt.gray))
        p.translate(-self.shadow_size,-self.shadow_size)
        p.fillPath(b, QBrush(self.Colors[self.step+2]))
        p.drawPath(b)
Beispiel #6
0
    def paintEvent(self, event):
        cX = self.parent.lytLeftMargin + self.scaleMarkLen
        cY = self.parent.lytTopMargin + self.scaleMarkLen
        worldX = self.parent.presenter.showChunkX*16
        worldZ = self.parent.presenter.showChunkZ*16
        painter = QPainter()
        path = QPainterPath()
        painter.begin(self)
        painter.save()
        #painter.setFont(QFont('Arial Narrow', 8)) #QFont.Bold
        # draw scale
        x = cX
        y = cY
        painter.rotate(-90)
        for i in range(16):
            fr = QRectF(-y, x, self.scaleMarkLen, self.edgeLen)
            painter.drawText(fr, Qt.AlignHCenter | Qt.AlignVCenter, str(worldX))
            #painter.drawRect(fr)
            #fr = QRectF(-y - 16*self.edgeLen - self.scaleMarkLen, x, self.scaleMarkLen, self.edgeLen)
            #painter.drawText(fr, Qt.AlignHCenter | Qt.AlignVCenter, '-5555')
            #painter.drawRect(fr)
            x += self.edgeLen
            worldX += 1
        painter.rotate(90)

        x = self.parent.lytLeftMargin
        y = cY
        for i in range(16):
            fr = QRectF(x, y, self.scaleMarkLen, self.edgeLen)
            painter.drawText(fr, Qt.AlignHCenter | Qt.AlignVCenter, str(worldZ))
            #painter.drawRect(fr)
            #fr = QRectF(x + self.scaleMarkLen + 16*self.edgeLen, y, self.scaleMarkLen, self.edgeLen)
            #painter.drawText(fr, Qt.AlignHCenter | Qt.AlignVCenter, '-5555')
            #painter.drawRect(fr)
            y += self.edgeLen
            worldZ += 1

        x = cX
        y = cY
        for i in range(16):
            for j in range(16):
                path.addRect(x, y, self.edgeLen, self.edgeLen)
                #fr = QRectF(x, y, self.edgeLen, self.edgeLen)
                #painter.drawText(fr, Qt.AlignHCenter | Qt.AlignVCenter, '-5555')
                x += self.edgeLen
            x = cX
            y += self.edgeLen
            
        painter.drawPath(path)

        slice_ = self.parent.presenter.getSlice(self.parent.presenter.elevation)
        x = cX
        y = cY
        bru = QBrush()
        #path1 = QPainterPath()
        for i in range(16):
            for j in range(16):
                if slice_[i][j] in self.parent.selectedMinerals.list_:
                    lePen = painter.pen()
                    
                    newPen = QPen(bru, 3)
                    newPen.setColor(self.parent.selectedMinerals.getColor(slice_[i][j]))
                    painter.setPen(newPen)
                    painter.drawRect(x, y, self.edgeLen, self.edgeLen)
                    painter.setPen(lePen)
                x += self.edgeLen
            x = cX
            y += self.edgeLen

        

        painter.restore()
        painter.end()
        del painter
Beispiel #7
0
    def paintEvent(self, event):
        qp = QPainter()
        qp.begin(self)

        qp.setRenderHint(QPainter.Antialiasing)
        qp.setBrush(self.color)
        qp.setPen(self.color)

        rect = event.rect()
        x = rect.x()
        w = rect.width()
        lineheight = 16
        print '-------------------'
        print 'lefts', self.lefts
        print 'rights', self.rights
        print '-------------------'
        ly = self._left_y + 5
        ry = self._right_y + 5
        rs = self.rights[:]

        # offset=1
        for i, l in enumerate(self.lefts):
            path = QPainterPath()
            sl, el = l[0], l[-1]
            try:
                r = rs[i]
                sr, er = r[0], r[-1]
                rs.pop(i)
                # offset+=1
            except IndexError:
                sr, er = l[-1], l[-1] - 1

            y = ly + lineheight * sl
            y2 = ry + lineheight * sr

            path.moveTo(x, y)
            path.lineTo(x, y + lineheight * (el - sl + 1))
            path.lineTo(x + w, y2 + lineheight * (er - sr + 1))
            path.lineTo(x + w, y2)
            qp.drawPath(path)

        for i, r in enumerate(rs):
            path = QPainterPath()
            sr, er = r[0], r[-1]
            # try:
            l = self.lefts[i]
            sl, el = r[-1], r[-1] - 1
            # except IndexError:
            #     sl, el = l[-1]+2, l[-1]+1
            # print sl, el

            y = ly + lineheight * (sl)
            y2 = ry + lineheight * (sr)

            path.moveTo(x, y)
            path.lineTo(x, y + lineheight * (el - sl + 1))
            path.lineTo(x + w, y2 + lineheight * (er - sr + 1))
            path.lineTo(x + w, y2)
            qp.drawPath(path)

        qp.end()
Beispiel #8
0
    def paintEvent(self, event):
        # print self.height()

        s = (self.target_angle - self.angle) * 0.09

        self.angle += s
        if math.fabs(self.angle - self.target_angle) < 0.001:
            self.angle = self.target_angle
            self.timer.stop()

        painter = QPainter(self)
        painter.setRenderHint(QPainter.Antialiasing)

        qp = QPainterPath()

        width = min(self.height(), (self.width() / 2))
        height = self.height()

        # center
        x = self.width() / 2

        big_radius = 1000
        y = big_radius + 10
        small_radius = big_radius - 15

        ac = math.atan(float(self.width()) / 2.0 /
                       float(big_radius)) / math.pi * 180.0 * 0.95

        qp.arcMoveTo(x - big_radius, y - big_radius, 2 * big_radius,
                     2 * big_radius, 90 - ac)
        qp.arcTo(x - big_radius, y - big_radius, 2 * big_radius,
                 2 * big_radius, 90 - ac, 2 * ac)
        qp.arcTo(x - small_radius, y - small_radius, 2 * small_radius,
                 2 * small_radius, 90 + ac, -2 * ac)
        qp.arcTo(x - big_radius, y - big_radius, 2 * big_radius,
                 2 * big_radius, 90 - ac, 0)
        # qp.lineTo(x+big_radius,y)

        grange = ac * 2.0 / 360.0

        # Centered on 0, starting at angle 90-ac, counterclockwise
        self.gradient = QConicalGradient(0, 0, 90 - ac - 1)

        if self.gradient_type == 1:
            self.gradient.setColorAt(0, Qt.GlobalColor.red)
            self.gradient.setColorAt(0.1, Qt.GlobalColor.yellow)
            self.gradient.setColorAt(0.2, Qt.GlobalColor.green)
            self.gradient.setColorAt(0.5, Qt.GlobalColor.green)
            self.gradient.setColorAt(0.5, Qt.GlobalColor.green)
        elif self.gradient_type == 2:
            self.gradient.setColorAt(0, Qt.GlobalColor.green)
            self.gradient.setColorAt(0.6 * grange, Qt.GlobalColor.yellow)
            self.gradient.setColorAt(1 * grange, Qt.GlobalColor.red)
        elif self.gradient_type == 3:
            self.gradient.setColorAt(0 * grange, Qt.GlobalColor.red)
            self.gradient.setColorAt(0.05 * grange, Qt.GlobalColor.yellow)
            self.gradient.setColorAt(0.1 * grange, Qt.GlobalColor.green)
            self.gradient.setColorAt(0.4 * grange, Qt.GlobalColor.green)
            self.gradient.setColorAt(0.45 * grange, Qt.GlobalColor.yellow)
            self.gradient.setColorAt(0.5 * grange, Qt.GlobalColor.red)

        self.gradient.setCenter(x, y)
        painter.fillPath(qp, QBrush(self.gradient))

        pen = QPen()
        pen.setColor(Qt.GlobalColor.black)
        pen.setWidth(max(1, int(1 * self.width() / 300)))
        painter.setPen(pen)
        painter.drawPath(qp)

        qp = QPainterPath()
        #qp.moveTo(0,0)
        #qp.lineTo(x,y)
        #qp.lineTo(self.width(),0)

        angle = 0
        ac = math.atan(float(self.width()) / 2.0 / float(big_radius)) * 0.95

        if self.direction == self.UNIDIRECTIONAL:
            angle = math.pi / 2 + ac * (1 - 2 * self.angle)

        elif self.direction == self.BIDIRECTIONAL:
            angle = math.pi / 2 - self.angle * ac

        length = big_radius + 10
        short_length = small_radius - 10

        qp.moveTo(x + math.cos(angle) * short_length,
                  y - math.sin(angle) * short_length)
        qp.lineTo(x + math.cos(angle) * length, y - math.sin(angle) * length)
        pen = QPen()
        pen.setCapStyle(Qt.RoundCap)
        pen.setColor(Qt.GlobalColor.black)
        pen.setWidth(max(3, int(3 * width / 300)))
        painter.setPen(pen)
        painter.drawPath(qp)

        qp = QPainterPath()
        delta = self.width() * 0.025

        # print "{}-{} {} c:{}".format(x,y,delta,math.cos(angle))
        qp.moveTo(x + delta + math.cos(angle) * short_length,
                  y + delta - math.sin(angle) * short_length)
        qp.lineTo(x + delta + math.cos(angle) * length,
                  y + delta - math.sin(angle) * length)
        pen = QPen()
        pen.setCapStyle(Qt.RoundCap)
        pen.setColor(QColor.fromRgbF(0, 0, 0, 0.3))
        pen.setWidth(max(3, int(3 * width / 300)))
        painter.setPen(pen)
        painter.drawPath(qp)

        qp = QPainterPath()
        qp.addRect(0, 0, self.width(), self.height())
        painter.drawPath(qp)
Beispiel #9
0
    def paintEvent(self, event):
        qp = QPainter()
        qp.begin(self)

        qp.setRenderHint(QPainter.Antialiasing)
        qp.setBrush(self.color)
        qp.setPen(self.color)

        rect = event.rect()
        x = rect.x()
        w = rect.width()
        lineheight = 16
        print '-------------------'
        print 'lefts', self.lefts
        print 'rights', self.rights
        print '-------------------'
        ly = self._left_y + 5
        ry = self._right_y + 5
        rs=self.rights[:]

        # offset=1
        for i, l in enumerate(self.lefts):
            path = QPainterPath()
            sl, el = l[0], l[-1]
            try:
                r=rs[i]
                sr, er = r[0], r[-1]
                rs.pop(i)
                # offset+=1
            except IndexError:
                sr, er = l[-1], l[-1]-1

            y = ly + lineheight * sl
            y2 = ry + lineheight * sr

            path.moveTo(x, y)
            path.lineTo(x, y + lineheight * (el - sl + 1))
            path.lineTo(x + w, y2 + lineheight * (er - sr + 1))
            path.lineTo(x + w, y2)
            qp.drawPath(path)

        for i, r in enumerate(rs):
            path = QPainterPath()
            sr, er = r[0], r[-1]
            # try:
            l=self.lefts[i]
            sl, el = r[-1], r[-1]-1
            # except IndexError:
            #     sl, el = l[-1]+2, l[-1]+1
                # print sl, el

            y = ly + lineheight * (sl)
            y2 = ry + lineheight * (sr)

            path.moveTo(x, y)
            path.lineTo(x, y + lineheight * (el - sl + 1))
            path.lineTo(x + w, y2 + lineheight * (er - sr + 1))
            path.lineTo(x + w, y2)
            qp.drawPath(path)

        qp.end()