示例#1
0
 def paintEvent(self, event):
     QFrame.paintEvent(self, event)
     selections = []
     paint = QtGui.QPainter()
     paint.begin(self)
     x = 2
     y = 2 + self.rootbox.height - self.y_scroll
     self.compose(paint, selections, self.rootbox, x, y, 2, 2,
                  self.rootbox.width, y + self.rootbox.depth)
     # The selection drawing routine.
     for seltype, x, y, frame in selections:
         if seltype == "rawtext":
             start = frame.paint.offset
             stop = start + len(frame.paint.positions)
             if start <= self.cursor < stop:
                 k = self.cursor - start
                 positions = frame.paint.positions
                 px = x + positions[k].x()
                 py = y + positions[k].y()
                 top = y - frame.height
                 paint.drawRect(
                     QRect(px, top, 2, frame.height + frame.depth))
     self.selections = selections
     #       code to draw the selection.
     #       paint.fillRect(QRectF(x1, 3 + y1 * self.fontht, x2-x1, self.fontht), QColor(0,0,255,100))
     paint.end()
示例#2
0
    def paintEvent(self, event):
        painter = QPainter(self)

        if self.fUseCustomPaint:
            painter.setBrush(QColor(36, 36, 36))
            painter.setPen(QColor(62, 62, 62))
            painter.drawRect(2, 2, self.width()-4, self.height()-4)

            painter.setBrush(self.fViewBg)
            painter.setPen(self.fViewBg)
            painter.drawRect(3, 3, self.width()-6, self.height()-6)
        else:
            painter.setBrush(self.fViewBg)
            painter.setPen(self.fViewBg)
            painter.drawRoundedRect(3, 3, self.width()-6, self.height()-6, 3, 3)

        self.fScene.render(painter, self.fRenderTarget, self.fRenderSource, Qt.KeepAspectRatio)

        width  = self.fViewRect[iWidth]/self.fScale
        height = self.fViewRect[iHeight]/self.fScale

        if width > self.kInternalWidth:
            width = self.kInternalWidth
        if height > self.kInternalHeight:
            height = self.kInternalHeight

        # cursor
        painter.setBrush(self.fViewBrush)
        painter.setPen(self.fViewPen)
        painter.drawRect(self.fViewRect[iX]+self.fInitialX, self.fViewRect[iY]+3, width, height)

        if self.fUseCustomPaint:
            event.accept()
        else:
            QFrame.paintEvent(self, event)
示例#3
0
 def paintEvent(self, event):
     opt = QStyleOptionButton()
     if self.state == _state_up:
         opt.state = QStyle.State_Active | QStyle.State_Enabled
     elif self.state in [_state_pressing, _state_down]:
         opt.state = QStyle.State_Active | QStyle.State_Enabled | QStyle.State_Sunken
     else:
         assert (False)
     if self.hover:
         opt.state |= QStyle.State_MouseOver
     opt.rect = self.frameRect()
     self.style().drawControl(QStyle.CE_PushButton, opt, QPainter(self))
     _QFrame.paintEvent(self, event)
示例#4
0
 def paintEvent(self, event):
     opt = QStyleOptionButton()
     if self.state == _state_up:
         opt.state = QStyle.State_Active | QStyle.State_Enabled
     elif self.state in [_state_pressing, _state_down]:
         opt.state = QStyle.State_Active | QStyle.State_Enabled | QStyle.State_Sunken
     else:
         assert(False)
     if self.hover:
         opt.state |= QStyle.State_MouseOver
     opt.rect = self.frameRect()
     self.style().drawControl(QStyle.CE_PushButton, opt, QPainter(self));
     _QFrame.paintEvent(self, event)
示例#5
0
    def paintEvent(self, event):
        QFrame.paintEvent(self, event)
        text = QDateTime.currentDateTime().toString(Qt.SystemLocaleLongDate)
        logicalRect = QRectF(
            QPointF(0, 0),
            QSizeF(QFontMetrics(self.font()).size(Qt.TextSingleLine, text)))
        physicalRect, frameWidth = QRectF(self.rect()), self.frameWidth()
        physicalRect.adjust(frameWidth, frameWidth, -frameWidth, -frameWidth)
        scaleForWidth = physicalRect.width() / logicalRect.width()
        scaleForHeight = physicalRect.height() / logicalRect.height()
        logicalRect.moveTo(frameWidth / scaleForWidth,
                           frameWidth / scaleForHeight)

        painter = QStylePainter(self)
        painter.scale(scaleForWidth, scaleForHeight)
        painter.drawText(logicalRect, Qt.AlignCenter, text)
示例#6
0
    def paintEvent(self, event):
        QFrame.paintEvent(self, event)
        factorForWidth = self.width() / 40
        factorForHeight = self.height() / 30
        row = 1
        column = 1

        painter = QPainter(self)
        painter.setOpacity(0.9)
        pen = QPen()
        pen.setColor(Qt.white)
        painter.setPen(pen)
        while factorForWidth * column < self.width():
            painter.drawLine(factorForWidth * column, 0, factorForWidth * column, self.height())
            column += 1
        while factorForHeight * row < self.height():
            painter.drawLine(0, factorForHeight * row, self.width(), factorForHeight * row)
            row += 1
示例#7
0
    def paintEvent(self, event):
        """This method draws a left sidebar

        :param event: QEvent
        """

        bottom = self.editor.viewport().height()
        font_metrics = QFontMetrics(self.editor.document().defaultFont())
        current_line = self.editor.document().findBlock(
            self.editor.textCursor().position()).blockNumber() + 1
        painter = QPainter(self)
        painter.fillRect(1, 1, self.width(),
                         self.height() - 2, QColor("#e8e8e8"))
        block = self.editor.firstVisibleBlock()
        vpoffset = self.editor.contentOffset()
        line = block.blockNumber()
        painter.setFont(self.editor.document().defaultFont())

        while block.isValid():
            line += 1
            pos = self.editor.blockBoundingGeometry(block).topLeft() + vpoffset
            if pos.y() > bottom:
                break

            # Text bold
            font = painter.font()
            if current_line == line:
                font.setBold(True)
            else:
                font.setBold(False)
            painter.setFont(font)

            if block.isVisible():
                painter.setPen(QColor("#9A9A9A"))
                fm_ascent = font_metrics.ascent()
                fm_descent = font_metrics.descent()
                painter.drawText(self.width() -
                                 font_metrics.width(str(line)) - 3,
                                 pos.y() + fm_ascent + fm_descent, str(line))

            block = block.next()
        painter.end()
        QFrame.paintEvent(self, event)
    def paintEvent(self, event):
        if self.elideMode == 0:  # if not set then behave as a normal label
            QLabel.paintEvent(self, event)
        else:
            QFrame.paintEvent(self, event)
            painter = QPainter(self)
            painter.setFont(self.font())

            # gets the spacing between lines
            lineSpacing = self.fontMetrics().lineSpacing()
            y = 0

            textLayout = QTextLayout(self.text(), self.font())
            textLayout.beginLayout()

            # loops  til the end of line
            while True:
                # create a line
                line = textLayout.createLine()

                if line.isValid() != True:
                    break
                self.lines += 1
                # set limit of line width
                line.setLineWidth(self.width())
                # calculate position of next line
                nextLineY = y + lineSpacing

                if self.height() >= nextLineY + lineSpacing:
                    line.draw(painter, QPoint(0, y))
                    y = nextLineY
                else:  # regenerate each line so that they do not overflow the width of widget
                    lastLine = self.text()[line.textStart():len(self.text())]
                    elidedLastLine = self.fontMetrics().elidedText(
                        lastLine, Qt.ElideRight, self.width())
                    painter.drawText(
                        QPoint(0, y + self.fontMetrics().ascent()),
                        elidedLastLine)
                    line = textLayout.createLine()
                    break
            textLayout.endLayout()
示例#9
0
    def paintEvent(self, event):
        painter = QPainter(self)
        painter.setRenderHint(QPainter.Antialiasing, bool(options.antialiasing == ANTIALIASING_FULL))

        if self.fUseCustomPaint:
            painter.setBrush(QColor(36, 36, 36))
            painter.setPen(QColor(62, 62, 62))
            painter.drawRect(2, 2, self.width()-4, self.height()-4)

            painter.setBrush(self.fViewBg)
            painter.setPen(self.fViewBg)
            painter.drawRect(3, 3, self.width()-6, self.height()-6)
        else:
            painter.setBrush(self.fViewBg)
            painter.setPen(self.fViewBg)
            painter.drawRoundedRect(3, 3, self.width()-6, self.height()-6, 3, 3)

        self.fScene.render(painter, self.fRenderTarget, self.fRenderSource, Qt.KeepAspectRatio)

        width  = self.fViewRect[iWidth]/self.fScale
        height = self.fViewRect[iHeight]/self.fScale

        if width > self.kInternalWidth:
            width = self.kInternalWidth
        if height > self.kInternalHeight:
            height = self.kInternalHeight

        # cursor
        lineHinting = painter.pen().widthF() / 2
        painter.setBrush(self.fViewBrush)
        painter.setPen(self.fViewPen)
        painter.drawRect(QRectF(
            floor(self.fViewRect[iX]+self.fInitialX)+lineHinting,
            floor(self.fViewRect[iY]+3)+lineHinting,
            round(width)-1, round(height)-1))

        if self.fUseCustomPaint:
            event.accept()
        else:
            QFrame.paintEvent(self, event)
示例#10
0
    def paintEvent(self, event):
        QFrame.paintEvent(self, event)
        p = QtGui.QPainter(self)
        pblack = QtGui.QPen(QColor("black"))
        pwhite = QtGui.QPen(QColor("white"))
        rect = QFrame.contentsRect(self)

        for wall in self.walls:
            if self.walls[wall] == True:
                p.setPen(pblack)
            else:
                p.setPen(pwhite)

            if wall == "T":
                # čára z prava do leva
                p.drawLine(rect.topLeft(), rect.topRight())
            elif wall == "B":
                p.drawLine(rect.bottomLeft(), rect.bottomRight())
            elif wall == "R":
                p.drawLine(rect.topRight(), rect.bottomRight())
            else:
                p.drawLine(rect.bottomLeft(), rect.topLeft())
    def paintEvent(self, event):
        painter = QPainter(self)

        if self.fUseCustomPaint:
            painter.setBrush(self.fViewBg)
            painter.setPen(QColor(12, 12, 12))
            painter.drawRect(0, 0, self.width(), self.height()-2)

            painter.setBrush(QColor(36, 36, 36))
            painter.setPen(QColor(62, 62, 62))
            painter.drawRect(1, 1, self.width()-2, self.height()-4)

            painter.setBrush(self.fViewBg)
            painter.setPen(self.fViewBg)
            painter.drawRect(2, 3, self.width()-5, self.height()-7)

        else:
            painter.setBrush(self.fViewBg)
            painter.setPen(self.fViewBg)
            painter.drawRoundedRect(2, 2, self.width()-6, self.height()-6, 3, 3)

        self.fScene.render(painter, self.fRenderSource, self.fRenderTarget, Qt.KeepAspectRatio)

        maxWidth  = self.fViewRect[iWidth]  / self.fScale
        maxHeight = self.fViewRect[iHeight] / self.fScale

        if maxWidth > self.fFakeWidth:
            maxWidth = self.fFakeWidth
        if maxHeight > self.fFakeHeight:
            maxHeight = self.fFakeHeight

        painter.setBrush(self.fViewBrush)
        painter.setPen(self.fViewPen)
        painter.drawRect(self.fViewRect[iX], self.fViewRect[iY], maxWidth, maxHeight)

        if self.fUseCustomPaint:
            event.accept()
        else:
            QFrame.paintEvent(self, event)
示例#12
0
    def paintEvent(self, event):
        if self.fScene is None:
            QFrame.paintEvent(self, event)
            return

        painter = QPainter(self)
        painter.setRenderHint(QPainter.Antialiasing,
                              bool(options.antialiasing == ANTIALIASING_FULL))

        # Brightness-aware out-of-canvas shading
        bg_color = self.fViewBg
        bg_black = bg_color.black()
        bg_shade = -12 if bg_black < 127 else 12
        r, g, b, _ = bg_color.getRgb()
        bg_color = QColor(r + bg_shade, g + bg_shade, b + bg_shade)

        frameWidth = self.fFrameWidth
        if self.fUseCustomPaint:
            # Inner shadow
            color = QColor.fromHsv(40, 0,
                                   255 - max(210, bg_color.black(), bg_black))
            painter.setBrush(Qt.transparent)
            painter.setPen(color)
            painter.drawRect(
                QRectF(0.5, 0.5,
                       self.width() - 1,
                       self.height() - 1))

            # Background
            painter.setBrush(bg_color)
            painter.setPen(bg_color)
            painter.drawRect(
                QRectF(1.5, 1.5,
                       self.width() - 3,
                       self.height() - 3))
        else:
            use_rounding = int(frameWidth > 1)

            rounding = 0.5 * use_rounding
            painter.setBrush(bg_color)
            painter.setPen(bg_color)
            painter.drawRoundedRect(
                QRectF(0.5 + frameWidth, 0.5 + frameWidth,
                       self.width() - 1 - frameWidth * 2,
                       self.height() - 1 - frameWidth * 2), rounding, rounding)

            clipPath = QPainterPath()
            rounding = 1.0 * use_rounding
            clipPath.addRoundedRect(
                QRectF(frameWidth, frameWidth,
                       self.width() - frameWidth * 2,
                       self.height() - frameWidth * 2), rounding, rounding)
            painter.setClipPath(clipPath)

        self.fScene.render(painter, self.fRenderTarget, self.fRenderSource,
                           Qt.KeepAspectRatio)

        # Allow cursor frame to look joined with minicanvas frame
        painter.setClipping(False)

        width = self.fViewRect[self._kRectWidth] / self.fScale
        height = self.fViewRect[self._kRectHeight] / self.fScale

        # cursor
        lineHinting = self.fViewPen.widthF() / 2
        x = self.fViewRect[self._kRectX] + self.fInitialX
        y = self.fViewRect[self._kRectY] + self.fInitialY
        scr_x = floor(x)
        scr_y = floor(y)
        rect = QRectF(scr_x + lineHinting, scr_y + lineHinting,
                      ceil(width + x - scr_x) - lineHinting * 2,
                      ceil(height + y - scr_y) - lineHinting * 2)

        if self.fRubberBandBlending == self._RUBBERBAND_BLENDING_PLUS:
            painter.setCompositionMode(QPainter.CompositionMode_Plus)
        elif self.fRubberBandBlending == self._RUBBERBAND_BLENDING_DIFF:
            painter.setCompositionMode(QPainter.CompositionMode_Difference)

        painter.setBrush(self.fViewBrush)
        painter.setPen(Qt.NoPen)
        painter.drawRect(rect)

        painter.setCompositionMode(QPainter.CompositionMode_SourceOver)
        painter.setBrush(Qt.NoBrush)
        painter.setPen(self.fViewPen)
        painter.drawRect(rect)

        if self.fUseCustomPaint:
            event.accept()
        else:
            QFrame.paintEvent(self, event)