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, pe): painter = QPainter(self) if self._fill: scaled_pixmap = self._image_pixmap.scaled(self.size(), Qt.IgnoreAspectRatio) painter.drawPixmap(0, 0, scaled_pixmap) else: painter.drawPixmap(0, 0, self._image_pixmap)
def paintEvent(self, pe): painter = QPainter(self) icon = QPixmap(self._icon) icon = icon.scaled(self.size(), Qt.IgnoreAspectRatio) if not self._mouse_over or not self._enabled: painter.setOpacity(self._normal_opacity) else: painter.setOpacity(self._hover_opacity) painter.drawPixmap(0, 0, icon)
def paintEvent(self, pe): if self._mouse_over: icon = self._hover_icon else: icon = self._normal_icon painter = QPainter(self) pixmap = QPixmap(icon) pixmap = pixmap.scaled(self.size(), Qt.IgnoreAspectRatio) painter.drawPixmap(0, 0, pixmap)
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 x_bitmap_opaque ( self, bitmap ): """ Returns a version of the specified bitmap with no transparency. """ dx = bitmap.width() dy = bitmap.height() opaque_bitmap = QPixmap( dx, dy ) opaque_bitmap.fill( WindowColor ) q = QPainter( opaque_bitmap ) q.drawPixmap( 0, 0, bitmap ) return opaque_bitmap
def paintEvent(self, event): mouse_pos = self.mapFromGlobal(QCursor.pos()) is_hover = self.contentsRect().contains(mouse_pos) QPushButton.paintEvent(self, event) painter = QPainter(self) painter.drawPixmap(2, 1, self.icon) if is_hover: painter.setCompositionMode(QPainter.CompositionMode_Screen) painter.drawPixmap(2, 1, self.icon)
def paintEvent(self, event): """ Handles the ``paintEvent`` event for :class:`EmbroidermodderLogo`. :param `event`: A `QPaintEvent`_ to be processed. """ painter = QPainter(self) painter.drawPixmap(0, 0, self.pixmap) # Draw the overlays. if self.paintThisText == 'About': painter.drawPixmap(20, 15, self.pixmap1ForPaintEvent)
def paintEvent(self, event): """ Handles the ``paintEvent`` event for :class:`EmbroidermodderLogo`. :param `event`: a `QPaintEvent` event to be processed. """ painter = QPainter(self) painter.drawPixmap(0, 0, self.pixmap) # Draw the overlays. if self.paintThisText == 'About': painter.drawPixmap(20, 15, self.pixmap1ForPaintEvent)
def paintEvent(self, pe): painter = QPainter(self) if self._checked: pixmap = self._second_icon else: pixmap = self._first_icon if self._mouse_over: painter.setOpacity(self.HOVER_OPACITY) else: painter.setOpacity(self.NORMAL_OPACITY) painter.drawPixmap(0, 0, pixmap)
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.HighQualityAntialiasing) painter.setRenderHint(QPainter.Antialiasing) painter.setRenderHint(QPainter.SmoothPixmapTransform) painter.setBrush(self.color) if self.effect_size == self.radius: painter.drawEllipse(1, 1, self.radius - 1, self.radius - 1) painter.drawPixmap(QRect(14, 14, self.radius / 2, self.radius / 2), self.pixmap) else: painter.drawEllipse(self.width() / 2, self.height() / 2, self.effect_size, self.effect_size) painter.end()
def paintEvent(self, event): painter = QPainter(self) painter.setBrush(Qt.white) painter.drawRect(self.rect()) painter.translate(self.width()/2, self.height()/2) if self.pixReady: grammarPix = QPixmap("/tmp/grammar.png") pw = grammarPix.width() ph = grammarPix.height() painter.drawPixmap(-pw/2, -ph/2, grammarPix)
def paintEvent(self, event): mouse_pos = self.mapFromGlobal(QCursor.pos()) is_hover = self.contentsRect().contains(mouse_pos) if not self.new_ui: QPushButton.paintEvent(self, event) painter = QPainter(self) if self.new_ui and self.isChecked(): painter.setRenderHint(QPainter.Antialiasing) painter.setPen(QPen(Qt.NoPen)) painter.setBrush(self.highlight) painter.drawRoundedRect(event.rect(), 2, 2) painter.drawPixmap(2, 2, self.icon) if is_hover: painter.setCompositionMode(QPainter.CompositionMode_Screen) painter.drawPixmap(2, 2, self.icon)
def paintEvent(self, event): """@reimp @param event QPaintEvent """ hwnd = self.__d.wid if not hwnd: return wid = skwin.wid_from_hwnd(hwnd) pm = QPixmap.grabWindow(wid) if pm.isNull(): return sz = self.size() if sz != pm.size(): pm = pm.scaled(sz, Qt.KeepAspectRatio, Qt.SmoothTransformation) painter = QPainter(self) painter.drawPixmap(0, 0, pm)
def capture(self): app.processEvents() print "caught capture",('tmp_{}_{:'+self.fmt+'}.jpg').format(self.UID,self.capture_count) print "current fps",float(self.capture_count)/(time.time()-self.start_capture_time) if not self.snap_shots.queue.empty(): self.snap_shots.queue.get(0) arrow = QPixmap(self.arrow_icon); self.px = QPixmap.grabWindow(QApplication.desktop().winId()) painter = QPainter(self.px) painter.drawPixmap(QCursor.pos(), arrow) if(self.options.capture_area_sa.isChecked()): self.px2 = self.px.copy(self.options.sa_x.value(), self.options.sa_y.value(), self.options.sa_w.value(), self.options.sa_h.value()) else: self.px2 = self.px self.px2.save(('tmp_{}_{:'+self.fmt+'}.jpg').format(self.UID,self.capture_count), 'jpg') self.capture_count+=1
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.HighQualityAntialiasing) painter.setRenderHint(QPainter.SmoothPixmapTransform) painter.setBrush(QColor(255, 255, 255)) painter.drawRect(QRect(0, -1, self.window().width(), 76)) if self.icon: painter.drawPixmap(QRect(16, 16, 32, 32), self.icon) if self.title: painter.setFont(QFont("Roboto\\Roboto-Regular.ttf", 20)) if qt_ver() != "PySide": painter.drawText(QRect(56, 0, 64, 48),0, self.title) else: painter.drawText(QRect(56, 0, 64, 48), self.title) if self.text: painter.setFont(QFont("Roboto\\Roboto-Regular.ttf", 13)) if qt_ver() != "PySide": painter.drawText(QRect(56, self.height() / 2, self.window().width() - 56, 36),0, self.text) painter.end()
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.HighQualityAntialiasing) painter.setRenderHint(QPainter.Antialiasing) painter.setRenderHint(QPainter.SmoothPixmapTransform) self.img = QPixmap() if self.isChecked(): painter.setBrush(self.color1) painter.drawRoundedRect(QRect(-1, -1, 31, 31), 7, 7) painter.drawPixmap(QRect(-2, -5, 35, 40), self.img.fromImage(self.check)) else: pen = QPen() pen.setWidth(2) painter.setPen(pen) # hand draw rect painter.drawLine(QPoint(0, 0), QPoint(30, 0)) painter.drawLine(QPoint(30, 0), QPoint(30, 30)) painter.drawLine(QPoint(0, 0), QPoint(0, 30)) painter.drawLine(QPoint(0, 30), QPoint(30, 30)) painter.end()
def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setRenderHint(QPainter.HighQualityAntialiasing) painter.setRenderHint(QPainter.SmoothPixmapTransform) painter.setBrush(QColor(255, 255, 255)) painter.drawRect(QRect(0, -1, self.window().width(), 76)) if self.icon: painter.drawPixmap(QRect(16, 16, 32, 32), self.icon) if self.title: painter.setFont(QFont("Roboto\\Roboto-Regular.ttf", 20)) if qt_ver() != "PySide": painter.drawText(QRect(56, 0, 64, 48), 0, self.title) else: painter.drawText(QRect(56, 0, 64, 48), self.title) if self.text: painter.setFont(QFont("Roboto\\Roboto-Regular.ttf", 13)) if qt_ver() != "PySide": painter.drawText( QRect(56, self.height() / 2, self.window().width() - 56, 36), 0, self.text) painter.end()
def paintEvent(self, event): """ Handles the ``paintEvent`` event for :class:`MdiArea`. :param `event`: A `QPaintEvent`_ to be processed. """ vport = self.viewport() rect = vport.rect() painter = QPainter(vport) painter.setRenderHint(painter.SmoothPixmapTransform) # Always fill with a solid color first if self.useColor: # painter.fillRect(rect, self.colorBrush) painter.fillRect(rect, self.bgColor) else: painter.fillRect(rect, self.background()) # Then overlay the texture if self.useTexture: # painter.fillRect(rect, self.backgroundBrush) bgBrush = QBrush(self.bgTexture) painter.fillRect(rect, bgBrush) # Overlay the logo last if self.useLogo: if not len(self.subWindowList()): # Nothing is open. cSizeW, cSizeH = rect.width(), rect.height() bgLogoW, bgLogoH = self.bgLogo.width(), self.bgLogo.height() if bgLogoW > cSizeW: # Proportional Scaling an Image. newHeight = bgLogoH * cSizeW // bgLogoW scaledLogo = self.bgLogo.scaled(cSizeW, newHeight) painter.drawPixmap(0, cSizeH // 2 - scaledLogo.height() // 2, scaledLogo) else: painter.drawPixmap((cSizeW - bgLogoW) // 2, (cSizeH - bgLogoH) // 2, self.bgLogo) else: # Center the pixmap dx = (rect.width() - self.bgLogo.width()) / 2 dy = (rect.height() - self.bgLogo.height()) / 2 painter.drawPixmap(dx, dy, self.bgLogo.width(), self.bgLogo.height(), self.bgLogo)
def paintEvent(self, event): pix = self.pixmap painter = QPainter(self) painter.drawPixmap(event.rect(), pix)
def paintEvent(self, pe): painter = QPainter(self) pixmap = self._icons[0] pixmap = pixmap.scaled(self.size(), Qt.IgnoreAspectRatio) painter.drawPixmap(0, 0, pixmap)
def print_(self, printer): painter = QPainter(printer) pageRect = printer.pageRect() w = pageRect.width() * 0.85 h = pageRect.height() painter.drawPixmap(0, 0, w, h, './template/image.png') sansFont = QFont("Helvetica", 10) painter.setFont(sansFont) fm = QFontMetrics(sansFont) height = fm.height() + 10 vmargin = 40 x0 = w + 1 y = 25 width = fm.width(u"测试编号") + 25 x1 = x0 + width painter.drawText(x0, y, u"报告编号") painter.drawText(x1, y, self.report['SERIAL']) y += height painter.drawText(x0, y, u"测试类型") painter.drawText(x1, y, self.report['TYPE']) y += height painter.drawText(x0, y, u"触发方式") painter.drawText(x1, y, self.report['TRIGGER']) y += height painter.drawText(x0, y, u"测试人员") painter.drawText(x1, y, self.report['PERSON']) y += height painter.drawText(x0, y, u"测试日期") painter.drawText(x1, y, self.report['DATE']) y += vmargin width = fm.width(u"通道1") + 50 x1 = x0 + width space = 0 painter.drawText(x0 + 20, y, u"压力通道(Mpa)") for i, j in enumerate(self.group_press): if j[1]: y += height if j[0]: painter.drawText(x0, y, j[0]) else: painter.drawText(x0, y, '通道%d'.decode("utf-8") % (i + 1)) painter.drawText(x1, y, self.report['PRESS'][i + 1]) else: space += height y += (vmargin + space) width = fm.width(u"通道计量1") + 15 x1 = x0 + width #x2 = x1 + width painter.drawText(x0 + 20, y, u"数字量计时通道(s)") y += height painter.drawText(x0, y, u"通道") painter.drawText(x1, y, u"开启时间") #painter.drawText(x2, y, u"关闭") space = 0 for i, j in enumerate(self.group_digital): if j[1]: y += height if j[0]: painter.drawText(x0, y, j[0]) else: painter.drawText(x0, y, '通道%d'.decode("utf-8") % (i + 1)) painter.drawText(x1, y, self.report['DIGITAL'][i + 1][0]) #painter.drawText(x2, y, self.report['DIGITAL'][i + 1][1]) else: space += height y += (vmargin + space) width = fm.width(u"出管速度(m/s)") + 25 x1 = x0 + width painter.drawText(x0, y, u"加速度(g)") painter.drawText(x1, y, self.report['ACCELERATION']) y += height painter.drawText(x0, y, u"出管速度(m/s)") painter.drawText(x1, y, self.report['SPEED']) y += height painter.drawText(x0, y, u"延迟时间(s)") painter.drawText(x1, y, self.report['DELAY']) y += height painter.drawText(x0, y, u"发射时间(s)") painter.drawText(x1, y, self.report['SHOOT']) y += height painter.drawText(x0, y, u"发射深度(s)") painter.drawText(x1, y, self.report['DEEP']) width = fm.width(u"泄放装置泄放时间(s)") + 5 y += height painter.drawText(x0, y, u"泄放阀开启时机(m)") x1 = x0 + width painter.drawText(x1, y, self.report['BLEED']) y += height painter.drawText(x0, y, u"泄放阀开启时间(s)") x1 = x0 + width + 1 painter.drawText(x1, y, self.report['OPEN'])