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()
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)
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)
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)
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)
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
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()
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)
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)
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)