def add_v_gradient(image, colors): if len(colors) < 2: return image new_img = image.copy() if not new_img.format() is QImage.Format_ARGB32_Premultiplied: new_img = new_img.convertToFormat(QImage.Format_ARGB32_Premultiplied) gradient = QtGui.QLinearGradient(0, 0, 0, new_img.height()) gradient.setColorAt(0, colors[0]) for i in range(1, len(colors) - 1): gradient.setColorAt(i / len(colors), colors[i]) gradient.setColorAt(1, colors[-1]) painter = QPainter(new_img) painter.setCompositionMode(QPainter.CompositionMode_SourceAtop) painter.fillRect(new_img.rect(), gradient) painter.end() return new_img
def pixmap(name, size, mode, state): """Returns a (possibly cached) pixmap of the name and size with the default text color. The state argument is ignored for now. """ if mode == QIcon.Selected: color = QApplication.palette().highlightedText().color() else: color = QApplication.palette().text().color() key = (name, size.width(), size.height(), color.rgb(), mode) try: return _pixmaps[key] except KeyError: i = QImage(size, QImage.Format_ARGB32_Premultiplied) i.fill(0) painter = QPainter(i) # render SVG symbol QSvgRenderer(os.path.join(__path__[0], name + ".svg")).render(painter) # recolor to text color painter.setCompositionMode(QPainter.CompositionMode_SourceIn) painter.fillRect(i.rect(), color) painter.end() # let style alter the drawing based on mode, and create QPixmap pixmap = QApplication.style().generatedIconPixmap( mode, QPixmap.fromImage(i), QStyleOption()) _pixmaps[key] = pixmap return pixmap
def _drawMonthFrame(self): self.initMonthInfo() wi = self.month_info painter = QPainter(self) pen = painter.pen() pen.setWidth(Var.line_width) painter.setPen(pen) for coord in wi.paint_base_lines: painter.drawLine(*coord) # Draw selections for selection in wi.selections(): painter.fillRect(*selection) # Draw dates font = painter.font() font.setPointSize(wi.cell_height/8) painter.setFont(font) for cell_id in range(42): x, y = wi.getCoordinate(cell_id) x += wi.cell_width * 74/100 y += wi.cell_height/7 day = wi.getDay(cell_id) painter.drawText(QPointF(x, y), QString(str(day)))
def paintEvent(self, paint_event): """Paints the box""" painter = QPainter(self) rect = self.contentsRect() tile_count = 3 tile_size = rect.width() / tile_count painter.save() painter.translate(rect.x(), rect.y()) color_index = 0 for y in range(tile_count): if y % 2 == 1: color_index = 1 else: color_index = 0 for x in range(tile_count): tile_rect = QRect(x * tile_size, y * tile_size, tile_size, tile_size) painter.fillRect(tile_rect, self.tile_colors[color_index]) color_index += 1 if color_index >= len(self.tile_colors): color_index = 0 painter.restore() painter.fillRect(rect, self.color) QFrame.paintEvent(self, paint_event)
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.Antialiasing) painter.fillRect(event.rect(), QBrush(QColor(255, 255, 255, 127))) painter.setPen(QPen(Qt.NoPen)) for i in xrange(6): x_pos = self.width() / 2 + 30 * \ math.cos(2 * math.pi * i / 6.0) - 10 y_pos = self.height() / 2 + 30 * \ math.sin(2 * math.pi * i / 6.0) - 10 if (self.counter / 5) % 6 == i: linear_gradient = QLinearGradient( x_pos + 10, x_pos, y_pos + 10, y_pos) linear_gradient.setColorAt(0, QColor(135, 206, 250)) linear_gradient.setColorAt(1, QColor(0, 0, 128)) painter.setBrush(QBrush(linear_gradient)) else: linear_gradient = QLinearGradient( x_pos - 10, x_pos, y_pos + 10, y_pos) linear_gradient.setColorAt(0, QColor(105, 105, 105)) linear_gradient.setColorAt(1, QColor(0, 0, 0)) painter.setBrush(QBrush(linear_gradient)) painter.drawEllipse( x_pos, y_pos, 20, 20) painter.end()
def paintEvent(self, event): 'Paint semi-transparent background, animated pattern, background text' QWidget.paintEvent(self, event) # make a painter p = QPainter(self) p.setRenderHint(QPainter.TextAntialiasing) p.setRenderHint(QPainter.HighQualityAntialiasing) # fill a rectangle with transparent painting p.fillRect(event.rect(), Qt.transparent) # animated random dots background pattern for i in range(4096): x = randint(9, self.size().width() - 9) y = randint(9, self.size().height() - 9) p.setPen(QPen(QColor(randint(200, 255), randint(200, 255), 255), 1)) p.drawPoint(x, y) # set pen to use white color p.setPen(QPen(QColor(randint(9, 255), randint(9, 255), 255), 1)) # Rotate painter 45 Degree p.rotate(35) # Set painter Font for text p.setFont(QFont('Ubuntu', 300)) # draw the background text, with antialiasing p.drawText(99, 199, "Radio") # Rotate -45 the QPen back ! p.rotate(-35) # set the pen to no pen p.setPen(Qt.NoPen) # Background Color p.setBrush(QColor(0, 0, 0)) # Background Opacity p.setOpacity(0.75) # Background Rounded Borders p.drawRoundedRect(self.rect(), 50, 50) # finalize the painter p.end()
def paintEvent(self, e): """ Paint the horizontal handle as a gradient, paint the vertical handle as a line. """ painter = QPainter(self) topColor = QColor(145, 145, 145) bottomColor = QColor(142, 142, 142) gradientStart = QColor(252, 252, 252) gradientStop = QColor(223, 223, 223) if self.orientation() == Qt.Vertical: painter.setPen(topColor) painter.drawLine(0, 0, self.width(), 0) painter.setPen(bottomColor) painter.drawLine(0, self.height() - 1, self.width(), self.height() - 1) linearGrad = QLinearGradient(QPointF(0, 0), QPointF(0, height() - 3)) linearGrad.setColorAt(0, gradientStart) linearGrad.setColorAt(1, gradientStop) painter.fillRect(QRect(QPoint(0, 1), self.size() - QSize(0, 2)), QBrush(linearGrad)) else: painter.setPen(topColor) painter.drawLine(0, 0, 0, self.height())
def paintEvent(self, ev): color = self.palette().color(QPalette.Highlight) painter = QPainter(self) # Filled rectangle. painter.setClipRect(self.rect()) color.setAlpha(50) painter.fillRect(self.rect().adjusted(2,2,-2,-2), color) # Thin rectangle outside. color.setAlpha(150) painter.setPen(color) painter.drawRect(self.rect().adjusted(0,0,-1,-1)) # Pseudo-handles at the corners and sides color.setAlpha(100) pen = QPen(color) pen.setWidth(8) painter.setPen(pen) painter.setBackgroundMode(Qt.OpaqueMode) # Clip at 4 corners region = QRegion(QRect(0,0,20,20)) region += QRect(self.rect().width()-20, 0, 20, 20) region += QRect(self.rect().width()-20, self.rect().height()-20, 20, 20) region += QRect(0, self.rect().height()-20, 20, 20) # Clip middles region += QRect(0, self.rect().height()/2-10, self.rect().width(), 20) region += QRect(self.rect().width()/2-10, 0, 20, self.rect().height()) # Draw thicker rectangles, clipped at corners and sides. painter.setClipRegion(region) painter.drawRect(self.rect())
def pixmap(name, size, mode, state): """Returns a (possibly cached) pixmap of the name and size with the default text color. The state argument is ignored for now. """ if mode == QIcon.Selected: color = QApplication.palette().highlightedText().color() else: color = QApplication.palette().text().color() key = (name, size.width(), size.height(), color.rgb(), mode) try: return _pixmaps[key] except KeyError: i = QImage(size, QImage.Format_ARGB32_Premultiplied) i.fill(0) painter = QPainter(i) # render SVG symbol QSvgRenderer(os.path.join(__path__[0], name + ".svg")).render(painter) # recolor to text color painter.setCompositionMode(QPainter.CompositionMode_SourceIn) painter.fillRect(i.rect(), color) painter.end() # let style alter the drawing based on mode, and create QPixmap pixmap = QApplication.style().generatedIconPixmap(mode, QPixmap.fromImage(i), QStyleOption()) _pixmaps[key] = pixmap return pixmap
def basefinished(self): if self.basereply.error() != QNetworkReply.NoError: return self.basepixmap = QPixmap() self.basepixmap.loadFromData(self.basereply.readAll()) if self.basepixmap.size() != self.rect.size(): self.basepixmap = self.basepixmap.scaled(self.rect.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation) self.setPixmap(self.basepixmap) # make marker pixmap self.mkpixmap = QPixmap(self.basepixmap.size()) self.mkpixmap.fill(Qt.transparent) br = QBrush(QColor(Config.dimcolor)) painter = QPainter() painter.begin(self.mkpixmap) painter.fillRect(0, 0, self.mkpixmap.width(), self.mkpixmap.height(), br) for marker in self.radar['markers']: if 'visible' not in marker or marker['visible'] == 1: pt = getPoint(marker["location"], self.point, self.zoom, self.rect.width(), self.rect.height()) mk2 = QImage() mkfile = 'teardrop' if 'image' in marker: mkfile = marker['image'] if os.path.dirname(mkfile) == '': mkfile = os.path.join('markers', mkfile) if os.path.splitext(mkfile)[1] == '': mkfile += '.png' mk2.load(mkfile) if mk2.format != QImage.Format_ARGB32: mk2 = mk2.convertToFormat(QImage.Format_ARGB32) mkh = 80 # self.rect.height() / 5 if 'size' in marker: if marker['size'] == 'small': mkh = 64 if marker['size'] == 'mid': mkh = 70 if marker['size'] == 'tiny': mkh = 40 if 'color' in marker: c = QColor(marker['color']) (cr, cg, cb, ca) = c.getRgbF() for x in range(0, mk2.width()): for y in range(0, mk2.height()): (r, g, b, a) = QColor.fromRgba(mk2.pixel(x, y)).getRgbF() r = r * cr g = g * cg b = b * cb mk2.setPixel(x, y, QColor.fromRgbF(r, g, b, a).rgba()) mk2 = mk2.scaledToHeight(mkh, 1) painter.drawImage(pt.x - mkh / 2, pt.y - mkh / 2, mk2) painter.end() self.wmk.setPixmap(self.mkpixmap)
def verticalGradient(self, painter, spanRect, clipRect): key = 'fancy vertical gradient %d %d %d %d %d'%(spanRect.width(), spanRect.height(), clipRect.width(), clipRect.height(), self.baseColor.rgb()) pixmap = QPixmap() p = painter rect = QRect(clipRect) if self._usePixmapCache and not QPixmapCache.find(key, pixmap): pixmap = QPixmap(clipRect.size()) p = QPainter(pixmap) rect = QRect(0, 0, clipRect.width(), clipRect.height()) base = self.baseColor grad = QLinearGradient(QPointF(spanRect.topRight()), QPointF(spanRect.topLeft())) grad.setColorAt(0, self.highlightColor) grad.setColorAt(0.301, base) grad.setColorAt(1, self.shadowColor) p.fillRect(rect, grad) light = QColor(255, 255, 255, 80) p.setPen(light) p.drawLine(rect.topRight() - QPoint(1, 0), rect.bottomRight() - QPoint(1, 0)) if self._usePixmapCache and not QPixmapCache.find(key, pixmap): painter.drawPixmap(clipRect.topLeft(), pixmap) p.end() del p QPixmapCache.insert(key, pixmap)
def paintEvent(self, event): """QWidget.paintEvent() implementation """ painter = QPainter(self) painter.fillRect(event.rect(), self.palette().color(QPalette.Window)) painter.setPen(Qt.black) block = self._qpart.firstVisibleBlock() blockNumber = block.blockNumber() top = int(self._qpart.blockBoundingGeometry(block).translated(self._qpart.contentOffset()).top()) bottom = top + int(self._qpart.blockBoundingRect(block).height()) singleBlockHeight = self._qpart.cursorRect().height() width = None boundingRect = self._qpart.blockBoundingRect(block) while block.isValid() and top <= event.rect().bottom(): if block.isVisible() and bottom >= event.rect().top(): number = str(blockNumber + 1) painter.drawText(0, top, self.width() - self._RIGHT_MARGIN, self._qpart.fontMetrics().height(), Qt.AlignRight, number) if boundingRect.height() >= singleBlockHeight * 2: # wrapped block if width is None: width = self.width() # laizy calculation painter.fillRect(1, top + singleBlockHeight, width - 2, boundingRect.height() - singleBlockHeight - 2, Qt.darkGreen) block = block.next() boundingRect = self._qpart.blockBoundingRect(block) top = bottom bottom = top + int(boundingRect.height()) blockNumber += 1
def paintEvent(self, event): painter = QPainter(self) painter.fillRect(event.rect(), self.numberBarColor) block = self.editor.firstVisibleBlock() # Iterate over all visible text blocks in the document. while block.isValid(): blockNumber = block.blockNumber() block_top = self.editor.blockBoundingGeometry(block).translated(self.editor.contentOffset()).top() # Check if the position of the block is outside of the visible area. if not block.isVisible() or block_top >= event.rect().bottom(): break # We want the line number for the selected line to be bold. if blockNumber == self.editor.textCursor().blockNumber(): self.font.setBold(True) painter.setPen(QColor("#000000")) else: self.font.setBold(False) painter.setPen(QColor("#717171")) painter.setFont(self.font) # Draw the line number right justified at the position of the line. paint_rect = QRect(0, block_top, self.width(), self.editor.fontMetrics().height()) painter.drawText(paint_rect, Qt.AlignRight, str(blockNumber + 1)) block = block.next() painter.end() QWidget.paintEvent(self, event)
def paintEvent(self, event): painter = QPainter() painter.begin(self) if not self.showRegionMap: painter.drawPixmap(0, 0, self.scaledOwnershipMap) rect = self.imageRect() if self.isEnabled(): if self.showRegionMap: painter.drawPixmap(0, 0, self.scaledRegionMap) else: if self.currentTerritory: painter.drawPixmap(0, 0, self.coloredMask(self.currentTerritory, QColor(*self.game.clientPlayer.color))) #draw active animations for a in self.animations: painter.save() a.paint(painter) painter.restore() painter.drawPixmap(0, 0, self.scaledTroopCountMap) else: painter.fillRect(rect, QColor(0, 0, 0, 200)) painter.drawText(rect, Qt.AlignCenter, "Waiting for the game to start.") #remaining troops if self.game.yourTurn() and self.game.remainingTroops: troopText = "Remaining troops: %d" % self.game.remainingTroops troopRect = QRect(0, 0, painter.fontMetrics().width(troopText) + 8, painter.fontMetrics().height() + 8) troopRect.moveBottomLeft(rect.bottomLeft()) painter.setPen(Qt.white) painter.setBrush(QColor(0, 0, 0, 200)) painter.drawRect(troopRect) painter.drawText(troopRect, Qt.AlignCenter, troopText) painter.end()
def updateTerritoryOwner(self, name, owner): t = self.game.board.getTerritory(name) p = self.game.getPlayer(owner) color = QColor(*p.color) color.setAlpha(200) territoryImage = QImage(t.image.size(), QImage.Format_ARGB32_Premultiplied) p = QPainter() p.begin(territoryImage) p.drawImage(0, 0, self.game.board.image) p.setCompositionMode(QPainter.CompositionMode_DestinationIn) p.drawImage(0, 0, t.image) p.end() coloredTerritoryImage = QImage(territoryImage.size(), QImage.Format_ARGB32_Premultiplied) coloredTerritoryImage.fill(0) p.begin(coloredTerritoryImage) p.fillRect(territoryImage.rect(), color) p.setCompositionMode(QPainter.CompositionMode_DestinationIn) p.drawImage(0, 0, t.image) p.end() p.begin(self.ownershipMap) p.drawImage(0, 0, territoryImage) p.drawImage(0, 0, coloredTerritoryImage) p.end() self.scaledOwnershipMap = self.ownershipMap.scaled(self.imageSize()) self.update()
def paintEvent(self, event): """ paint a circle for each bp """ painter = QPainter(self) painter.fillRect(event.rect(), self.palette().color(QPalette.Window)) painter.setPen(Qt.black) block = self.main_editor.firstVisibleBlock() block_num = block.blockNumber() top = int(self.main_editor.blockBoundingGeometry(block).translated( self.main_editor.contentOffset()).top()) bottom = top + int(self.main_editor.blockBoundingRect(block).height()) bounding_rect = self.main_editor.blockBoundingRect(block) bp_brush = QBrush(QColor(250, 0, 0, 128)) while block.isValid() and top <= event.rect().bottom(): if block.isVisible() and bottom >= event.rect().top(): line = block_num + 1 width = self.width() - self.MARGIN height = self.main_editor.fontMetrics().height() painter.setPen(Qt.black) painter.drawText(0, top, width, height, Qt.AlignRight, str(line)) if line in self.breakpoints: # paint break point diameter = min(width, height) - 3 painter.setPen(Qt.NoPen) painter.setBrush(bp_brush) painter.drawEllipse((width - diameter) / 2, top + 1.5, diameter, diameter) block = block.next() bounding_rect = self.main_editor.blockBoundingRect(block) top = bottom bottom = top + int(bounding_rect.height()) block_num += 1
def horizontalGradient(self, painter, spanRect, clipRect): key = 'fancy vertical gradient %d %d %d %d %d'%(spanRect.width(), spanRect.height(), clipRect.width(), clipRect.height(), self.baseColor.rgb()) pixmap = QPixmap() p = painter rect = QRect(clipRect) if self._usePixmapCache and not QPixmapCache.find(key, pixmap): pixmap = QPixmap(clipRect.size()) p = QPainter(pixmap) rect = QRect(0, 0, clipRect.width(), clipRect.height()) base = self.baseColor grad = QLinearGradient(QPointF(rect.topLeft()), QPointF(rect.bottomLeft())) grad.setColorAt(0, self.highlightColor.lighter(120)) if rect.height() == self.navigationWidgetHeight: grad.setColorAt(0.4, self.highlightColor) grad.setColorAt(0.401, base) grad.setColorAt(1, self.shadowColor) p.fillRect(rect, grad) shadowGradient = QLinearGradient(QPointF(spanRect.topLeft()), QPointF(spanRect.topRight())) shadowGradient.setColorAt(0, QColor(0, 0, 0, 30)) highlight = self.highlightColor.lighter(130) highlight.setAlpha(100) shadowGradient.setColorAt(0.7, highlight) shadowGradient.setColorAt(1, QColor(0, 0, 0, 40)) p.fillRect(rect, shadowGradient) if self._usePixmapCache and not QPixmapCache.find(key, pixmap): painter.drawPixmap(clipRect.topLeft(), pixmap) p.end() del p QPixmapCache.insert(key, pixmap)
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.Antialiasing) painter.fillRect(event.rect(), QBrush(QColor(255, 255, 255, 127))) painter.setPen(QPen(Qt.NoPen)) for i in range(6): x_pos = self.width() / 2 + 30 * \ math.cos(2 * math.pi * i / 6.0) - 10 y_pos = self.height() / 2 + 30 * \ math.sin(2 * math.pi * i / 6.0) - 10 if (self.counter / 5) % 6 == i: linear_gradient = QLinearGradient(x_pos + 10, x_pos, y_pos + 10, y_pos) linear_gradient.setColorAt(0, QColor(135, 206, 250)) linear_gradient.setColorAt(1, QColor(0, 0, 128)) painter.setBrush(QBrush(linear_gradient)) else: linear_gradient = QLinearGradient(x_pos - 10, x_pos, y_pos + 10, y_pos) linear_gradient.setColorAt(0, QColor(105, 105, 105)) linear_gradient.setColorAt(1, QColor(0, 0, 0)) painter.setBrush(QBrush(linear_gradient)) painter.drawEllipse(x_pos, y_pos, 20, 20) painter.end()
def paintEvent(self, event): p = QPainter(self) value = self.level / 4096 r = self.rect() r.setHeight(r.height() * math.sqrt(value)) r.moveBottom(self.rect().height()) p.fillRect(r, self.palette().highlight())
def getProtoStatusIcon(name, proto_int=None): """Creates a nice little overlay of the status and the protocol icon. Returns QIcon""" status_icon = getIcon(name) if not proto_int: return status_icon else: ret = _status_icon_cache.get((name, proto_int), None) if ret: return ret proto_name, _ = proto_name_int(proto_int, _PROTO_INT) status_pixmap = status_icon.pixmap(QSize(16,16)) proto_pixmap = getIcon(proto_name).pixmap(QSize(16,16)) combined_pixmap = QImage(28,20, QImage.Format_ARGB32_Premultiplied) painter = QPainter(combined_pixmap) painter.setCompositionMode(painter.CompositionMode_Source) painter.fillRect(combined_pixmap.rect(), Qt.transparent) painter.setCompositionMode(painter.CompositionMode_Source) painter.drawPixmap(QPoint(0,0), status_pixmap) painter.setCompositionMode(painter.CompositionMode_SourceOver) painter.drawPixmap(QPoint(12,4), proto_pixmap) painter.end() #add cache _status_icon_cache[(name, proto_int)] = QIcon(QPixmap.fromImage(combined_pixmap)) return _status_icon_cache[(name, proto_int)]
def paintEvent(self, event): """QWidget.paintEvent() implementation Draw markers """ painter = QPainter(self) painter.fillRect(event.rect(), self.palette().color(QPalette.Window)) block = self._qpart.firstVisibleBlock() blockBoundingGeometry = self._qpart.blockBoundingGeometry(block).translated(self._qpart.contentOffset()) top = blockBoundingGeometry.top() bottom = top + blockBoundingGeometry.height() for block in qutepart.iterateBlocksFrom(block): height = self._qpart.blockBoundingGeometry(block).height() if top > event.rect().bottom(): break if block.isVisible() and \ bottom >= event.rect().top(): if block.blockNumber() in self._qpart.lintMarks: msgType, msgText = self._qpart.lintMarks[block.blockNumber()] pixMap = self._lintPixmaps[msgType] yPos = top + ((height - pixMap.height()) / 2) # centered painter.drawPixmap(0, yPos, pixMap) if Bookmarks.isBlockMarked(block): yPos = top + ((height - self._bookmarkPixmap.height()) / 2) # centered painter.drawPixmap(0, yPos, self._bookmarkPixmap) top += height
def paintEvent(self, event): """ Reimplements the :meth:`QWidget.paintEvent` method. :param event: Event. :type event: QEvent """ def __setBold(state): """ Sets the current painter font bold state. :return: Definiton success. :rtype: bool """ font = painter.font() font.setBold(state) painter.setFont(font) return True painter = QPainter(self) painter.fillRect(event.rect(), self.__backgroundColor) pen = QPen(QBrush(), self.__separatorWidth) pen.setColor(self.__separatorColor) painter.setPen(pen) topRightCorner = event.rect().topRight() bottomRightCorner = event.rect().bottomRight() painter.drawLine(topRightCorner.x(), topRightCorner.y(), bottomRightCorner.x(), bottomRightCorner.y()) painter.setPen(self.__color) viewportHeight = self.__editor.viewport().height() metrics = QFontMetrics(self.__editor.document().defaultFont()) currentBlock = self.__editor.document().findBlock( self.__editor.textCursor().position()) block = self.__editor.firstVisibleBlock() blockNumber = block.blockNumber() painter.setFont(self.__editor.document().defaultFont()) while block.isValid(): blockNumber += 1 position = self.__editor.blockBoundingGeometry(block).topLeft() + self.__editor.contentOffset() if position.y() > viewportHeight: break if not block.isVisible(): continue block == currentBlock and __setBold(True) or __setBold(False) painter.drawText(self.width() - metrics.width(foundations.strings.toString(blockNumber)) - self.__margin / 3, round(position.y() + metrics.ascent() + metrics.descent() - \ (self.__editor.blockBoundingRect(block).height() * 8.0 / 100)), foundations.strings.toString(blockNumber)) block = block.next() painter.end() QWidget.paintEvent(self, event)
def paintEvent(self, event): super(BackgroundFrame, self).paintEvent(event) painter = QPainter(self) if self.backgroundColor: painter.fillRect(self.rect(), QColor(self.backgroundColor)) if self.scaled_pixmap is not None: painter.drawPixmap(self.image_position, self.scaled_pixmap) painter.end()
def paintEvent(self, event): """This function create gradient background""" painter = QPainter(self) gradient = QLinearGradient(QPointF(100, 0), QPointF(100, 100)) gradient.setColorAt(1, QColor(COLOR_SCHEME['server_widget_bg1'])) gradient.setColorAt(0, QColor(COLOR_SCHEME['server_widget_bg2'])) painter.fillRect(self.rect(), gradient)
def paintEvent(self, paint_event): QFrame.paintEvent(self, paint_event) painter = QPainter(self) painter.setRenderHint(QPainter.Antialiasing, True) painter.setRenderHint(QPainter.SmoothPixmapTransform, True) rect = self.contentsRect() """@type: QRect""" painter.fillRect(rect, self.__color) x = rect.x() y = rect.y() width = rect.width() height = rect.height() if not self.__indeterminate: count = len(self.__state_order) for index in range(count): state = self.__state_order[index] state_width = floor(width * (state.progress / 100.0)) if index == count - 1: state_width = width - x + 1 painter.fillRect(x, y, state_width, height, state.color) x += state_width else: painter.fillRect(rect, self.__indeterminate_color) p = self.__indeterminate_state s = self.__indeterminate_step_size gradient = QLinearGradient(0, rect.height() / 2, rect.width(), rect.height() / 2) gradient.setColorAt(p - s, QColor(255, 255, 255, 0)) gradient.setColorAt(p, QColor(255, 255, 255, 200)) gradient.setColorAt(p + s, QColor(255, 255, 255, 0)) painter.fillRect(rect, gradient) self.__indeterminate_state += s if self.__indeterminate_state + s >= 1.0 or self.__indeterminate_state + s <= 0.0: self.__indeterminate_step_size *= -1 self.__indeterminate_state = round(self.__indeterminate_state) + self.__indeterminate_step_size if self.__shiny: #Shiny overlay! gradient = QLinearGradient(rect.width() / 2, 0, rect.width() / 2, rect.height()) gradient.setColorAt(0, QColor(255, 255, 255, 0)) gradient.setColorAt(0.2, QColor(255, 255, 255, 200)) gradient.setColorAt(0.4, QColor(255, 255, 255, 0)) gradient.setColorAt(0.85, QColor(255, 255, 255, 0)) gradient.setColorAt(0.85, QColor(0, 0, 0, 0)) gradient.setColorAt(1, QColor(0, 0, 0, 127)) painter.fillRect(rect, gradient)
def paintEvent(self,event): titleHeight = 40 bottomHeight = 50 #画标题背景 painter = QPainter(self) painter.save() linearGradient = QLinearGradient(0, 0,0,titleHeight) linearGradient.setColorAt(0, QColor(60,150,255)) linearGradient.setColorAt(0.1, QColor(6,88,200)) linearGradient.setColorAt(1, QColor(80,150,255)) painter.setBrush(QBrush(linearGradient)) contenRect = QRect(0, 0, self.width(), titleHeight) painter.fillRect(contenRect, QBrush(linearGradient)) painter.restore() #画标题内容 painter.save() painter.setPen(QPen(QColor(255, 255, 255),1)) font = painter.font() font.setPointSize(12) painter.setFont(font) painter.drawText(QPoint(10,25), self.title) painter.restore() #画中间白色背景 painter.save() painter.setPen(QPen(QColor(255, 255, 255),1)) brush = QBrush(QColor(242,242,242)) painter.setBrush(brush) contenRect = QRect(0, titleHeight, self.width()-1, self.height() - titleHeight - bottomHeight) # painter.fillRect(contenRect, brush) painter.drawRect(contenRect) painter.restore() #画提示信息内容 painter.save() painter.setPen(QPen(QColor(1, 1, 1),1)) font = painter.font() font.setPointSize(15) painter.setFont(font) fm = QFontMetrics(font) infoWidth = fm.width(self.hintInfo) painter.drawText(QPoint((self.width() - infoWidth - 10)/2, 150), self.hintInfo) painter.restore() #画底层背景 painter.save() brush = QBrush(QColor(219,234,255)) painter.setBrush(brush) contenRect = QRect(0, self.height() - bottomHeight, self.width(), bottomHeight) painter.fillRect(contenRect, brush) painter.restore()
def paintEvent(self, event): ' Paint semi-transparent background ' painter = QPainter(self) painter.fillRect(event.rect(), Qt.transparent) painter.setPen(Qt.NoPen) painter.setBrush(QColor(0, 0, 0)) painter.setOpacity(0.75) painter.drawRoundedRect(self.rect(), 75, 50) painter.end()
def _makePixmap(self, width, height): pixmap = QPixmap(width, height) style = self.brushComboBox.itemData( self.brushComboBox.currentIndex()).toInt()[0] brush = QBrush(self.color, Qt.BrushStyle(style)) painter = QPainter(pixmap) painter.fillRect(pixmap.rect(), Qt.white) painter.fillRect(pixmap.rect(), brush) return pixmap
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.Antialiasing) painter.fillRect(event.rect(), self.palette().brush(QPalette.Window)) self.drawMarkings(painter) self.drawNeedle(painter) self.drawNeedle2(painter) painter.end()
def paintEvent(self, event): painter = QPainter(self) if self._screen.dirty: self._paint_screen(painter, self._screen.dirty) if self._margins: bot, right = self._margins painter.fillRect(right, self.brash('default')) painter.fillRect(bot, self.brash('default')) self._margins = []
def paintEvent(self, event): QWidget.paintEvent(self, event) if self.dataSource is None: return painter = QPainter(self) self.current_painter = painter painter.setRenderHints(QPainter.Antialiasing|QPainter.TextAntialiasing) painter.fillRect(self.rect(), Qt.white) self.dataSource.draw() del self.current_painter
def update_image(self): rgb_table = self.thermal_image.rgb_lookup[ self.parent.color_palette_box.currentIndex()] painter = QPainter(self.image) for i in range(self.width * self.thermal_image.image_pixel_width): index = (256 * i) // (self.width * self.thermal_image.image_pixel_width) color = QColor(*rgb_table[index]) painter.fillRect(i, 0, 1, self.height, color) self.update()
def paintEvent(self, event): """Paint over the widget to overlay its content.""" if not ACTIVATE_OPACITY: painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.TextAntialiasing, True) painter.setRenderHint(QPainter.Antialiasing, True) painter.fillRect(event.rect(), QBrush(QColor(255, 255, 255, 80))) painter.setPen(QPen(Qt.NoPen)) painter.end() super(SliderArea, self).paintEvent(event)
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.fillRect(event.rect(), QBrush(Qt.white)) size = min(self.width(), self.height()) painter.setViewport(self.width() / 2 - size / 2, self.height() / 2 - size / 2, size, size) painter.setWindow(0, 0, 100, 100) painter.drawText(10, 10, 80, 80, Qt.AlignCenter, "Python") painter.end()
def paintEvent(self, event): qp = QPainter(self) g = QLinearGradient(0.0, 0.0, 0.0, self.height()) g.setColorAt(0, Qt.white) g.setColorAt(1, Qt.black) y = self.height() - self.reflectivity * self.height() / 4095.0 qp.fillRect(0, 0, self.width(), self.height(), g) qp.setPen(Qt.red) qp.drawLine(0, y, self.width(), y)
def paintEvent(self,event): # 自定义标题,添加关闭按钮 painter = QPainter(self) linearGradient = QLinearGradient(0, 0,0,self.tabBar().frameGeometry().height()) linearGradient.setColorAt(0, QColor(60,150,255)) linearGradient.setColorAt(0.05, QColor(6,88,200)) linearGradient.setColorAt(1, QColor(80,150,255)) painter.setBrush(QBrush(linearGradient)) self.menuRect = QRect(0, 0, self.frameGeometry().width(), self.tabBar().height()) painter.fillRect(self.menuRect, QBrush(linearGradient)) self.closeButton.move(QPoint(self.geometry().width()-self.closeButton.frameGeometry().width(), (self.tabBar().height()-self.closeButton.frameGeometry().height())/2))
def paintEvent(self, event): painter = QPainter(self.viewport()) if self.highlight_line: r = self.cursorRect() r.setX(0) r.setWidth(self.viewport().width()) painter.fillRect(r, self.highlight_brush) if self.draw_line: painter.setPen(self.line_pen) painter.drawLine(self.line) painter.end() QPlainTextEdit.paintEvent(self, event)
def paintEvent(self, paintevent): """Paints the box""" painter = QPainter(self) rect = self.contentsRect() rect.setWidth(rect.width() - 1) rect.setHeight(rect.height() - 1) painter.drawRect(rect) rect.setX(rect.x() + 1) rect.setY(rect.y() + 1) painter.fillRect(rect, self._getColor())
def createOnlineIcon(self,color): dim = QRect(0,0,32,32) img = QImage(dim.size(),QImage.Format_ARGB32) p = QPainter(img) p.setCompositionMode(QPainter.CompositionMode_Source) p.fillRect(dim,Qt.transparent) p.setCompositionMode(QPainter.CompositionMode_SourceOver) p.setRenderHints(QPainter.Antialiasing) p.setPen(Qt.black) p.setBrush(color) p.drawEllipse(dim.adjusted(1,1,-2,-2)) return img
def mkfinished(self): if self.mkreply.error() != QNetworkReply.NoError: return self.mkpixmap = QPixmap() self.mkpixmap.loadFromData(self.mkreply.readAll()) if self.mkpixmap.size() != self.rect.size(): self.mkpixmap = self.mkpixmap.scaled(self.rect.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation) br = QBrush(QColor(Config.dimcolor) ); painter = QPainter(); painter.begin(self.mkpixmap); painter.fillRect(0,0,self.mkpixmap.width(),self.mkpixmap.height(),br); painter.end(); self.wmk.setPixmap(self.mkpixmap)
def createOnlineIcon(self, color): dim = QRect(0, 0, 32, 32) img = QImage(dim.size(), QImage.Format_ARGB32) p = QPainter(img) p.setCompositionMode(QPainter.CompositionMode_Source) p.fillRect(dim, Qt.transparent) p.setCompositionMode(QPainter.CompositionMode_SourceOver) p.setRenderHints(QPainter.Antialiasing) p.setPen(Qt.black) p.setBrush(color) p.drawEllipse(dim.adjusted(1, 1, -2, -2)) return img
def paintEvent(self, paintevent): """Paints the box""" painter = QPainter(self) rect = self.contentsRect() rect.setWidth(rect.width() - 1) rect.setHeight(rect.height() - 1) painter.drawRect(rect) rect.setX(rect.x() + 1) rect.setY(rect.y() + 1) painter.fillRect(rect, self.color)
def paintEvent(self, event): w, h, cx, cy, r = self.clockFaceDetails() painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.Antialiasing) painter.fillRect(event.rect(), self.background) painter.setBrush(QBrush(Qt.NoBrush)) painter.setPen(QPen(Qt.black)) painter.drawEllipse(cx - r * 1.1, cy - r * 1.1, 2.2 * r, 2.2 * r) painter.setBrush(QBrush(Qt.NoBrush)) painter.setPen(QPen(Qt.black, 3)) for i in range(12): angle = 2 * i * math.pi / 12 painter.drawLine(cx + (0.9 * r * math.cos(angle)), cy + (0.9 * r * math.sin(angle)), cx + (r * math.cos(angle)), cy + (r * math.sin(angle))) painter.setPen(QPen(Qt.black, 2)) for i in range(60): angle = 2 * i * math.pi / 60 painter.drawLine(cx + (0.95 * r * math.cos(angle)), cy + (0.95 * r * math.sin(angle)), cx + (r * math.cos(angle)), cy + (r * math.sin(angle))) hour, minute = self.displayTime hour = hour % 12 angle = (-math.pi / 2) + (2 * hour * math.pi / 12) + (2 * math.pi / 12 * minute / 60.0) painter.setPen(QPen(Qt.black, 8, Qt.SolidLine, Qt.RoundCap)) painter.drawLine(cx, cy, cx + (0.55 * r * math.cos(angle)), cy + (0.55 * r * math.sin(angle))) angle = (-math.pi / 2) + (2 * minute * math.pi / 60) painter.drawLine(cx, cy, cx + (0.8 * r * math.cos(angle)), cy + (0.8 * r * math.sin(angle))) painter.setPen(QPen(self.foreground)) painter.setFont(self.font()) rect = QRect(0, self.height() * 0.75, self.width(), self.maxHeight) painter.drawText(rect, Qt.AlignCenter, "%02i:%02i" % self.displayTime) painter.end()
def round(self): bmp = QBitmap(self.size()) p = QPainter() p.begin(bmp) p.fillRect(bmp.rect(), Qt.white) p.setBrush(QColor(0,0,0)) p.drawRoundedRect(bmp.rect(), 5, 5) p.setPen(QColor(255,255,255,255)) p.drawPoints(QPointF(self.width()-2,self.height()-1), QPointF(self.width()-1,self.height()-2)) p.setPen(QColor(0,0,0)) p.drawPoints(QPointF(0,2),QPointF(3,0),QPointF(2,0),QPointF(1,1)) p.end() self.setMask(bmp)
def paintEvent(self, *args, **kwargs): painter = QPainter(self) painter.drawPixmap(0, 0, 12, self.WIDTH_BORDER_TOP, self.__pic_bg, 0, 0, 12, self.WIDTH_BORDER_TOP) painter.drawPixmap( self.WIDTH_BORDER_LEFT, 0, self.width() - self.WIDTH_BORDER_RIGHT - self.WIDTH_BORDER_LEFT, self.WIDTH_BORDER_TOP, self.__pic_bg, 12, 0, 1, self.WIDTH_BORDER_TOP) painter.drawPixmap(self.width() - self.WIDTH_BORDER_RIGHT, 0, self.__pic_bg, 13, 0, 12, self.WIDTH_BORDER_TOP) painter.drawPixmap(0, self.height() - self.WIDTH_BORDER_BOTTOM, self.__pic_bg, 0, 90, 12, 14) painter.drawPixmap( 0, self.WIDTH_BORDER_TOP, self.WIDTH_BORDER_LEFT, self.height() - self.WIDTH_BORDER_BOTTOM - self.WIDTH_BORDER_TOP, self.__pic_bg, 0, 89, 12, 1) painter.drawPixmap( self.width() - self.WIDTH_BORDER_RIGHT, self.WIDTH_BORDER_TOP, self.WIDTH_BORDER_LEFT, self.height() - self.WIDTH_BORDER_BOTTOM - self.WIDTH_BORDER_TOP, self.__pic_bg, 13, 89, 12, 1) painter.drawPixmap( self.WIDTH_BORDER_LEFT, self.height() - self.WIDTH_BORDER_BOTTOM, self.width() - self.WIDTH_BORDER_RIGHT - self.WIDTH_BORDER_LEFT, self.WIDTH_BORDER_BOTTOM, self.__pic_bg, 12, 90, 1, 14) painter.drawPixmap(self.width() - self.WIDTH_BORDER_RIGHT, self.height() - self.WIDTH_BORDER_BOTTOM, self.__pic_bg, 13, 90, 12, 14) painter.fillRect( self.WIDTH_BORDER_LEFT - 4, self.WIDTH_BORDER_TOP, self.width() - self.WIDTH_BORDER_LEFT - self.WIDTH_BORDER_RIGHT + 8, self.height() - self.WIDTH_BORDER_BOTTOM - self.WIDTH_BORDER_TOP, QBrush(QColor(255, 255, 255))) painter.setFont(QFont('Microsoft Yahei', 8, QFont.Bold)) painter.setPen(QColor(250, 250, 250, 220)) painter.drawText(1, 5, self.width(), 27, Qt.AlignHCenter | Qt.AlignVCenter, self.windowTitle()) painter.setPen(QColor(50, 50, 50, 255)) painter.drawText(0, 4, self.width(), 27, Qt.AlignHCenter | Qt.AlignVCenter, self.windowTitle()) painter.setPen(QColor(142, 142, 142, 255)) if self.width() > 380: painter.drawLine(self.WIDTH_FRAME_LEFT + self.OFFSET_BORDER_LEFT, self.OFFSET_BORDER_TOP + 22, self.WIDTH_FRAME_LEFT + self.OFFSET_BORDER_LEFT, self.height() - self.OFFSET_BORDER_BOTTOM - 1)
def paintEvent(self, event): ''' Paints area the user is currently selecting starting from point start_x and, start_y ending at the position of the user's mouse currently on screen. ''' painter = QPainter() painter.begin(self) painter.fillRect(self.screen_geometry, QColor(10, 10, 10, 125)) self._paint_selection(painter) self._paint_usage_text(painter) painter.end()
def paintEvent(self, event): if self.model is None: return painter = QPainter(self) painter.setRenderHint(QPainter.Antialiasing) span = self.model.maxValue - self.model.minValue painter.setWindow(0, 0, BarGraphView.WIDTH * self.model.rowCount(), span) for row in range(self.model.rowCount()): x = row * BarGraphView.WIDTH index = self.model.index(row) color = QColor(self.model.data(index, Qt.UserRole)) y = self.model.data(index) painter.fillRect(x, span - y, BarGraphView.WIDTH, y, color)
def paintEvent(self, event): contents_y = 0 page_bottom = self.edit.viewport().height() font_metrics = QFontMetrics(self.edit.document().defaultFont()) current_block = self.edit.document().findBlock( self.edit.textCursor().position()) painter = QPainter(self) painter.fillRect(self.rect(), Qt.lightGray) block = self.edit.firstVisibleBlock() viewport_offset = self.edit.contentOffset() line_count = block.blockNumber() painter.setFont(self.edit.document().defaultFont()) while block.isValid(): line_count += 1 # The top left position of the block in the document position = self.edit.blockBoundingGeometry( block).topLeft() + viewport_offset # Check if the position of the block is out side of the visible area if position.y() > page_bottom: break # We want the line number for the selected line to be bold. bold = False if block == current_block: bold = True font = painter.font() font.setBold(True) painter.setFont(font) # Draw the line number right justified at the y position of the # line. 3 is a magic padding number. drawText(x, y, text). painter.drawText( self.width() - font_metrics.width(str(line_count)) - 3, round(position.y()) + font_metrics.ascent() + font_metrics.descent() - 1, str(line_count)) # Remove the bold style if it was set previously. if bold: font = painter.font() font.setBold(False) painter.setFont(font) block = block.next() self.highest_line = line_count painter.end() QWidget.paintEvent(self, event)
def paintEvent(self, event): bg_color = Qt.black # configuración del painter painter = QPainter(self) painter.setRenderHint(QPainter.Antialiasing, True) # transformación window-viewport painter.setWindow(0, 0, *self.frame_size) # fondo del laberinto painter.fillRect(0, 0, self.frame_size[0], self.frame_size[1], QBrush(bg_color)) # dibujar el laberinto self._paintLaberinto(painter)
def paintEvent(self, event): painter = QPainter(self) painter.fillRect(event.rect(), self.__background_color) # Draw markers self.__draw_markers(painter) # Draw slider if settings.DOCMAP_SLIDER and self.__scrollbar.isVisible(): painter.setPen(Qt.NoPen) color = QColor(Qt.lightGray) color.setAlpha(50) painter.setBrush(QBrush(color)) position1 = self.__get_position(self.__scrollbar.value()) position2 = self.__get_position(self.__scrollbar.value() + self.__scrollbar.pageStep()) painter.drawRect(0, position1, self.__width, position2 - position1)