def drawIconWithShadow(icon, rect, p, iconMode, radius, color, offset): cache = QPixmap() pixmapName = "icon {0} {1} {2}".format(icon.cacheKey(), iconMode, rect.height()) if not QPixmapCache.find(pixmapName, cache): px = icon.pixmap(rect.size()) cache = QPixmap(px.size() + QSize(radius * 2, radius * 2)) cache.fill(Qt.transparent) cachePainter = QPainter(cache) if iconMode == QIcon.Disabled: im = px.toImage().convertToFormat(QImage.Format_ARGB32) for y in range(im.height()): scanLine = im.scanLine(y) for x in range(im.width()): pixel = scanLine intensity = qGray(pixel) scanLine = qRgba(intensity, intensity, intensity, qAlpha(pixel)) scanLine += 1 px = QPixmap.fromImage(im) # Draw shadow tmp = QImage(px.size() + QSize(radius * 2, radius * 2 + 1), QImage.Format_ARGB32_Premultiplied) tmp.fill(Qt.transparent) tmpPainter = QPainter(tmp) tmpPainter.setCompositionMode(QPainter.CompositionMode_Source) tmpPainter.drawPixmap(QPoint(radius, radius), px) tmpPainter.end() # blur the alpha channel blurred = QImage(tmp.size(), QImage.Format_ARGB32_Premultiplied) blurred.fill(Qt.transparent) blurPainter = QPainter(blurred) # todo : blur image blurPainter.end() tmp = blurred # blacken the image tmpPainter.begin(tmp) tmpPainter.setCompositionMode(QPainter.CompositionMode_SourceIn) tmpPainter.fillRect(tmp.rect(), color) tmpPainter.end() tmpPainter.begin(tmp) tmpPainter.setCompositionMode(QPainter.CompositionMode_SourceIn) tmpPainter.fillRect(tmp.rect(), color) tmpPainter.end() # draw the blurred drop shadow... cachePainter.drawImage(QRect(0, 0, cache.rect().width(), cache.rect().height()), tmp) # Draw the actual pixmap... cachePainter.drawPixmap(QPoint(radius, radius) + offset, px) QPixmapCache.insert(pixmapName, cache) targetRect = cache.rect() targetRect.moveCenter(rect.center()) p.drawPixmap(targetRect.topLeft() - offset, cache)
def paintEvent(self, e): 'Custom Paint Event' p = QPainter(self) opt = QStyleOptionFrameV3() opt.initFrom(self) opt.rect = self.contentsRect() opt.lineWidth = self.style().pixelMetric(QStyle.PM_DefaultFrameWidth, opt, self) opt.midLineWidth = 0 opt.state = opt.state | QStyle.State_Sunken if self._active: opt.state = opt.state | QStyle.State_HasFocus else: opt.state = opt.state & ~QStyle.State_HasFocus; self.style().drawPrimitive(QStyle.PE_PanelLineEdit, opt, p) y = (opt.rect.height() - self._star.height()) / 2 width = self._star.width() for i in range(0, 5): x = i*(width + 1) + opt.lineWidth if self._rating >= i+0.5: p.drawImage(x, y, self._star if not self._active else self._blue) else: p.drawImage(x, y, self._dot)
def paintEvent(self, event): if self.image is None: super().paintEvent(event) return painter = QPainter(self) rect = event.rect() painter.drawImage(rect.topLeft(), self.image, rect)
def paintEvent(self, paintEvent): painter = QPainter(self) painter.setRenderHint(QPainter.Antialiasing) painter.scale(self.scale, self.scale) painter.drawRect(0, 0, 511, 511) painter.drawImage(0, 0, self.image) if self.freeze_image is not None and self.freeze_image is not self.image: painter.setOpacity(0.3) painter.drawImage(0, 0, self.freeze_image)
def resizeImage(self, image, newSize): if image.size() == newSize: return newImage = QImage(newSize, QImage.Format_RGB32) newImage.fill(qRgb(255, 255, 255)) painter = QPainter(newImage) painter.drawImage(QtCore.QPoint(0, 0), image) self.image = newImage
def paintEvent(self, e): painter = QPainter(self) painter.setWorldTransform(QTransform().scale(0.5, 0.5)) x = 0 for i in self.images: painter.drawImage(QRect(x, 0, i.width(), i.height()), i) painter.drawRect(x, 0, i.width(), i.height()) x += i.width()
def paintEvent(self, event): """ Handles the ``paintEvent`` event for :class:`ImageWidget`. :param `event`: A `QPaintEvent`_ to be processed. """ painter = QPainter(self) painter.drawPixmap(0, 0, self.pixmap) if self.parent.lightswitch.isOn: # Turn the light on. painter.drawImage(self.size().width() - 113, 1, self.lightOnImg)
def print_(self): canvas = self.mw.get_current_canvas() if not canvas: return printer = QPrinter() dlg = QPrintDialog(printer, self.mw) if dlg.exec_() == QDialog.Accepted: painter = QPainter(printer) painter.drawImage(0, 0, canvas.image) painter.end()
def paintEvent(self, event): """ Handles the ``paintEvent`` event for :class:`ImageWidget`. :param `event`: A `QPaintEvent`_ to be processed. """ painter = QPainter(self) img = self.img width, height = img.width(), img.height() painter.setViewport(0, 0, width, height) painter.setWindow(0, 0, width, height) painter.drawImage(0, 0, img)
def paintEvent(self, event): painter = QPainter(self) painter.drawImage(QPoint(0, 0), self.qimage)
def set_image(self, image): self.dirty = True self.fill(0) painter = QPainter(self) painter.drawImage(0, 0, image)
def paintEvent(self, event): painter = QPainter(self) painter.drawImage(event.rect(), self.image) painter.drawImage(event.rect(), self.imagePreview) self.clearImagePreview()