コード例 #1
0
ファイル: stylehelper.py プロジェクト: nichollyn/libspark
    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)
コード例 #2
0
ファイル: support.py プロジェクト: realmhamdy/VisualScrape
 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)
コード例 #3
0
ファイル: common.py プロジェクト: realmhamdy/VisualScrape
 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)
コード例 #4
0
ファイル: common.py プロジェクト: realmhamdy/VisualScrape
 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)
コード例 #5
0
    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)
コード例 #6
0
ファイル: image_slice.py プロジェクト: davidmorrill/facets
    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
コード例 #7
0
    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)
コード例 #8
0
    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)
コード例 #9
0
    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)
コード例 #10
0
ファイル: common.py プロジェクト: realmhamdy/VisualScrape
 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)
コード例 #11
0
ファイル: material.py プロジェクト: ethanhs/material
 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()
コード例 #12
0
ファイル: paintArea.py プロジェクト: omartinak/cfree
	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)
コード例 #13
0
ファイル: material.py プロジェクト: xuyi2008yi/material
 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()
コード例 #14
0
    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)
コード例 #15
0
    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)
コード例 #16
0
    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
コード例 #17
0
ファイル: material.py プロジェクト: ethanhs/material
 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()
コード例 #18
0
ファイル: material.py プロジェクト: ethanhs/material
 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()
コード例 #19
0
ファイル: material.py プロジェクト: xuyi2008yi/material
 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()
コード例 #20
0
ファイル: material.py プロジェクト: xuyi2008yi/material
 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()
コード例 #21
0
ファイル: mdiarea.py プロジェクト: Allen76/Embroidermodder
    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)
コード例 #22
0
    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)
コード例 #23
0
 def paintEvent(self, event):
     pix = self.pixmap
     painter = QPainter(self)
     painter.drawPixmap(event.rect(), pix)
コード例 #24
0
ファイル: common.py プロジェクト: realmhamdy/VisualScrape
 def paintEvent(self, pe):
   painter = QPainter(self)
   pixmap = self._icons[0]
   pixmap = pixmap.scaled(self.size(), Qt.IgnoreAspectRatio)
   painter.drawPixmap(0, 0, pixmap)
コード例 #25
0
    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'])