Beispiel #1
0
    def printFile(self): # Needs some work...
        printDialog = QPrintDialog(self.printer, py_de)
        if printDialog.exec_() == QDialog.Accepted:
            margin = 10
            pageNum = 1
            yPos = 0
            printJob = QPainter()
            printJob.begin(self.printer)
            printJob.setFont(self.font)
            fm = printJob.fontMetrics()

            for i in range(self.textEdit.lines()):
                if margin + yPos > self.printer.height() - margin:
                    pageNum += 1
                    self.printer.newPage()
                    yPos = 0
                printJob.drawText(margin,               # X
                                  margin + yPos,        # Y
                                  self.printer.width(), # Width
                                  self.printer.height(),# Height
                                  QtCore.Qt.AlignTop,       # Alignment
                                  self.textEdit.text(i - 1)# The text to print
                                  )
                yPos += fm.lineSpacing()
            printJob.end
    def paintEvent(self, _):
        s = QToolButton.sizeHint(self)
        r = 0
        p = QPoint()

        if self.direction == QBoxLayout.TopToBottom:
            r = 90
            p = QPoint(0, -s.height())
        elif self.direction == QBoxLayout.BottomToTop:
            r = -90
            p = QPoint(-s.width(), 0)

        pixmap = QPixmap(s)
        pixmap.fill(QColor(0, 0, 0, 0))

        o = QStyleOptionToolButton()
        self.initStyleOption(o)

        o.rect.setSize(s)

        pixpainter = QPainter()
        pixpainter.begin(pixmap)
        self.style().drawComplexControl(QStyle.CC_ToolButton, o, pixpainter,
                                        self)
        pixpainter.end()

        painter = QPainter(self)
        painter.rotate(r)
        painter.drawPixmap(p, pixmap)
    def setNameAndBrush(self, sigma, color=Qt.black):
        self.sigma = sigma
        self.setText(str(self.brushSize))
        font = QFont()
        font.setPointSize(10)
        font.setBold(True)
        self.setFont(font)
        self.setForeground(color)

        pixmap = QPixmap(self.pixmapSize)
        pixmap.fill(Qt.transparent)
        painter = QPainter()
        painter.begin(pixmap)
        painter.setRenderHint(QPainter.Antialiasing, True)
        painter.setPen(color)
        brush = QBrush(color)
        painter.setBrush(brush)
        painter.drawEllipse(
            QRect(
                self.pixmapSize.width() / 2 - self.brushSize / 2,
                self.pixmapSize.height() / 2 - self.brushSize / 2,
                self.brushSize,
                self.brushSize,
            )
        )
        painter.end()
        self.setIcon(QIcon(pixmap))
        self.setTextAlignment(Qt.AlignVCenter)
    def paintEvent(self, event):
    
        if not self.text().isEmpty():
        
            painter = QPainter()
            painter.begin(self)
            painter.setRenderHint(QPainter.Antialiasing)
            
            color = self.palette().color(QPalette.Highlight)
            color.setAlpha(127)
            painter.setBrush(QBrush(color))
            color = self.palette().color(QPalette.HighlightedText)
            color.setAlpha(127)
            painter.setPen(QPen(color))
            size = self.height() / 2.0

            left = self.width() - 4
            
            painter.drawRect(left - size, size * 0.5, size, size)
            painter.drawLine(left - size * 0.75, size * 0.75,
                             left - size * 0.25, size * 1.25)
            painter.drawLine(left - size * 0.25, size * 0.75,
                             left - size * 0.75, size * 1.25)
            painter.end()
        
        QLabel.paintEvent(self, event)
    def paintEvent(self, _):
        s = QToolButton.sizeHint(self)
        r = 0
        p = QPoint()

        if self.direction == QBoxLayout.TopToBottom:
            r = 90
            p = QPoint(0, -s.height())
        elif self.direction == QBoxLayout.BottomToTop:
            r = -90
            p = QPoint(-s.width(), 0)

        pixmap = QPixmap(s)
        pixmap.fill(QColor(0, 0, 0, 0))

        o = QStyleOptionToolButton()
        self.initStyleOption(o)

        o.rect.setSize(s)

        pixpainter = QPainter()
        pixpainter.begin(pixmap)
        self.style().drawComplexControl(QStyle.CC_ToolButton, o, pixpainter, self)
        pixpainter.end()

        painter = QPainter(self)
        painter.rotate(r)
        painter.drawPixmap(p, pixmap)
Beispiel #6
0
    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 drawScaleBar(self, painter, value_range, unit="", size=None):
     if self.scale_show:
         sc = ScaleBarDrawer(position=self.scale_position,
                             transfer_function=self.transfer_function,
                             font=self.scale_font,
                             text_color=self.scale_text,
                             line_color=self.scale_line,
                             line_thickness=self.scale_line_thickness,
                             value_range=value_range,
                             unit=unit)
         log_debug("Drawing scale bar!")
         if not self.scale_bar_outside_image:
             sc.draw(painter, size)
         else:
             if size is None:
                 viewport = painter.viewport()  # viewport rectangle
                 mat, ok = painter.worldMatrix().inverted()
                 if not ok:
                     raise ValueError("Transformation matrix of painter is singular.")
                 size = mat.mapRect(viewport)
             pic = QPicture()
             new_painter = QPainter()
             new_painter.begin(pic)
             bounding_rect = sc.draw(new_painter, size)
             new_painter.end()
             pic.setBoundingRect(pic.boundingRect() | bounding_rect.toRect())
             log_debug("Returning picture %s" % (pic,))
             return pic
Beispiel #8
0
 def drawBox(self):
     '''handle errors'''
     if not self.pixmap:
         self.showErrMsg('Please choose an image first!')
         return
         
     x, y, w, h = self.line_x.text(), self.line_y.text(), self.line_w.text(),\
         self.line_h.text()
     if not (x.isdigit() and y.isdigit() and w.isdigit() and h.isdigit()):
         self.showErrMsg('Please input integer!')
         return
     
     x, y, w, h = int(x), int(y), int(w), int(h)
     if not 0 <= x <= self.pixmap.width():
         self.showErrMsg('Value Error', 'x should be an integer between 0 and %d' 
             % self.pixmap.width())
     elif not 0 <= y <= self.pixmap.height():
         self.showErrMsg('Value Error', 'y should be an integer between 0 and %d'
             % self.pixmap.height())
     elif not 0 <= w <= (self.pixmap.width() - x):
         self.showErrMsg('Value Error', 'x + w should be an integer between 0 and %d'
             % self.pixmap.width())
     elif not 0 <= h <= (self.pixmap.height() - y):
         self.showErrMsg('Value Error', 'y + h should be an integer between 0 and %d'
             % self.pixmap.height())
     else:
         painter = QPainter()
         painter.begin(self.pixmap)
         pen = QPen(QtCore.Qt.red, 5, QtCore.Qt.SolidLine)
         painter.setPen(pen)
         painter.drawRect(x, y, w, h)
         painter.end()
         self.labelImage.setPixmap(self.pixmap)
Beispiel #9
0
    def exportAsImage(self):
        filename = unicode(QFileDialog.getSaveFileName(self,
                                                       self.tr('Save Model As Image'), '',
                                                       self.tr('PNG files (*.png *.PNG)')))
        if not filename:
            return

        if not filename.lower().endswith('.png'):
            filename += '.png'

        totalRect = QRectF(0, 0, 1, 1)
        for item in self.scene.items():
            totalRect = totalRect.united(item.sceneBoundingRect())
        totalRect.adjust(-10, -10, 10, 10)

        img = QImage(totalRect.width(), totalRect.height(),
                     QImage.Format_ARGB32_Premultiplied)
        img.fill(Qt.white)
        painter = QPainter()
        painter.setRenderHint(QPainter.Antialiasing)
        painter.begin(img)
        self.scene.render(painter, totalRect, totalRect)
        painter.end()

        img.save(filename)
Beispiel #10
0
  def _renderedImage2(self, width, height, extent, transp_background=False, layerids=None):
    """rendering function for GIS < 2.7"""
    antialias = True

    if self._renderer is None:
      self._initRenderer()

    canvas = self.exportSettings.canvas
    if canvas is None:
      logMessage("With this QGIS version (<= 2.6), map canvas needs to be set to the export settings")
      return

    if layerids is None:
      layerids = [mapLayer.id() for mapLayer in canvas.layers()]

    renderer = self._renderer   # QgsMapRenderer
    renderer.setLayerSet(layerids)

    image = QImage(width, height, QImage.Format_ARGB32_Premultiplied)
    if transp_background:
      image.fill(QColor(Qt.transparent).rgba())   #
    else:
      image.fill(canvas.canvasColor().rgba())   #

    renderer.setOutputSize(image.size(), image.logicalDpiX())
    renderer.setExtent(extent.unrotatedRect())

    painter = QPainter()
    painter.begin(image)
    if antialias:
      painter.setRenderHint(QPainter.Antialiasing)
    renderer.render(painter)
    painter.end()

    return tools.base64image(image)
Beispiel #11
0
  def renderedImage(self, width, height, extent, transp_background=False, layerids=None):
    if QGis.QGIS_VERSION_INT < 20700:
      return self._renderedImage2(width, height, extent, transp_background, layerids)

    # render layers with QgsMapRendererCustomPainterJob
    from qgis.core import QgsMapRendererCustomPainterJob
    antialias = True
    settings = self.exportSettings.mapSettings

    # store old map settings
    old_outputSize = settings.outputSize()
    old_extent = settings.extent()
    old_rotation = settings.rotation()
    old_layerids = settings.layers()
    old_backgroundColor = settings.backgroundColor()

    # map settings
    settings.setOutputSize(QSize(width, height))
    settings.setExtent(extent.unrotatedRect())
    settings.setRotation(extent.rotation())

    if layerids is not None:
      settings.setLayers(layerids)

    if transp_background:
      settings.setBackgroundColor(QColor(Qt.transparent))
    #else:    #TODO: remove
      #settings.setBackgroundColor(self.exportSettings.canvas.canvasColor())

    has_pluginlayer = False
    for layerId in settings.layers():
      layer = QgsMapLayerRegistry.instance().mapLayer(layerId)
      if layer and layer.type() == QgsMapLayer.PluginLayer:
        has_pluginlayer = True
        break

    # create an image
    image = QImage(width, height, QImage.Format_ARGB32_Premultiplied)
    painter = QPainter()
    painter.begin(image)
    if antialias:
      painter.setRenderHint(QPainter.Antialiasing)

    # rendering
    job = QgsMapRendererCustomPainterJob(settings, painter)
    if has_pluginlayer:
      job.renderSynchronously()   # use this method so that TileLayerPlugin layer is rendered correctly
    else:
      job.start()
      job.waitForFinished()
    painter.end()

    # restore map settings
    settings.setOutputSize(old_outputSize)
    settings.setExtent(old_extent)
    settings.setRotation(old_rotation)
    settings.setLayers(old_layerids)
    settings.setBackgroundColor(old_backgroundColor)

    return tools.base64image(image)
Beispiel #12
0
 def paintEvent(self, e):
     super().paintEvent(e)
     painter = QPainter()
     painter.begin(self)
     pen = QPen()
     pen.setWidth(2)
     painter.setPen(pen)
     right_as_line = False
     ral_place = []
     if self.previous_commit != None and '\\' in self.previous_commit[-1]:
         right_as_line = True
         for f in range(len(self.previous_commit[-1])):
             if self.previous_commit[-1][f] == '\\':
                 ral_place.append(f)
     i = 0
     for j in range(len(self.commit[0])):
         if self.commit[0][j] == '*':
             painter.drawImage(QPoint(i,0), self.commit_image())
         elif self.commit[0][j] == '|':
             x = 30/len(self.commit)
             if len(self.commit) > 1 and len(self.commit[1]) > j+1 and self.commit[1][j+1] == '\\':
                 x = 15
             painter.drawLine(i+15, 0, i+15, x)
         elif self.commit[0][j] == '\\':
             if right_as_line == True and j-1 in ral_place:
                 painter.drawLine(i+15, 0, i+15, 15)
             else:
                 painter.drawLine(i+15, 15, i+30, 15+(15/len(self.commit)))
         elif self.commit[0][j] == '/':
             painter.drawImage(QPoint(i,0), QImage(dirname(__file__)+'/icons/right.png'))
         elif self.commit[0][j] == '_':
             painter.drawImage(QPoint(i,0), QImage(dirname(__file__)+'/icons/line-flipped.png'))
         i += self.char_size
     down = 0
     up = 0
     left = False
     for j in range(1, len(self.commit)):
         i = 0
         for k in range(len(self.commit[j])):
             if self.commit[j][k] == '|':
                 x = (30/len(self.commit))*j
                 if len(self.commit[0]) > k and self.commit[0][k] == '*':
                     x += 15
                 if len(self.commit[j-1]) > k and self.commit[j-1][k-1] == '\\':
                     x += (30/len(self.commit))/2
                 painter.drawLine(i+15, x, i+15, (30/len(self.commit))*(j+1))
             elif self.commit[j][k] == '\\':
                 painter.drawLine(i+1, 15, i+29, 15+(15/len(self.commit))*(j+1))
                 down = 5
                 up = 2
                 left = True
             elif self.commit[j][k] == '/':
                 if left == True:
                     painter.drawLine(i+2, 15+(13/len(self.commit))*(j+1), i+29, 15+(15/len(self.commit))*j)
                 else:
                     painter.drawLine(i+1, (30/len(self.commit))*(j+1)-up, i+27, down+(30/len(self.commit))*j)
             elif self.commit[j][k] == '_':
                 painter.drawLine(i, 15+(15/len(self.commit))*j, i+30, 15+(15/len(self.commit))*j)
             i += self.char_size
     painter.end()
Beispiel #13
0
    def paintEvent( self, event ) :
        MARGIN_PIXELS = 4
        
        painter = QPainter()
        (r, g, b, alpha) = ImageUtils.rbgaTointValues(self.log.rgb, self.log.alpha)
        
        lineColour = QColor(r, g, b, alpha)
        
        assert lineColour != None 
        assert self.log.line_style != None
        
        lineStyle = WidgetUtils.getQtPenStyle(self.log.line_style)
        
        assert lineStyle != None 
        assert self.log.line_width != None
        
        lineWidth = NumberUtils.floatToIntDefault(self.log.line_width, 1)
        pen = QPen(lineColour, lineWidth, lineStyle)
        
        painter.begin(self)
        painter.setPen(pen)

        yLevel = self.logName_label.rect().bottomLeft().y()
        xStart = self.xpix[0]
        xStop = self.xpix[1]
        
        #horizontal line
        #logger.debug("--paintEvent() r: {0},  g: {1},  b: {2},  a: {3}, name{4}".format(r, g, b, alpha, self.log.name))
        #logger.debug("--paintEvent() xStart: {0},  yLevel: {1},  xStop: {2},  yLevel: {3}".format(xStart, yLevel, xStop, yLevel))
        painter.drawLine( xStart, yLevel, xStop, yLevel )
        
        painter.end()
Beispiel #14
0
    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()
Beispiel #15
0
 def updateCircle(self, s):
     size = s * self.zoom
     pixmap = QPixmap(self.width(), self.height())
     pixmap.fill(Qt.transparent)
     #painter ellipse 1
     painter = QPainter()
     painter.begin(pixmap)
     painter.setRenderHint(QPainter.Antialiasing)
     pen = QPen(Qt.red)
     pen.setWidth(3)
     painter.setPen(pen)
     brush = QBrush(Qt.green)
     painter.setBrush(brush)
     painter.drawEllipse(QRect(self.width()/2 - size/2, self.height()/2 - size/2, size, size))
     painter.end()
     #painter ellipse 2
     painter2 = QPainter()
     painter2.begin(pixmap)
     painter2.setRenderHint(QPainter.Antialiasing)
     pen2 = QPen(Qt.green)
     pen2.setStyle(Qt.DotLine)
     pen2.setWidth(3)
     painter2.setPen(pen2)
     painter2.drawEllipse(QRect(self.width()/2 - size/2, self.height()/2 - size/2, size, size))
     painter2.end()
     
     self.ellipseLabel.setPixmap(QPixmap(pixmap))
     self.lastSize = s
Beispiel #16
0
 def paintEvent(self, event):
 
     painter = QPainter()
     painter.begin(self)
     painter.setOpacity(self.pixmap_opacity)
     painter.drawPixmap(0, 0, self.old_pixmap)
     painter.end()
Beispiel #17
0
 def drawScaleBar(self, painter, value_range, unit="", size=None):
     if self.scale_show:
         sc = ScaleBarDrawer(position=self.scale_position,
                             transfer_function=self.transfer_function,
                             font=self.scale_font,
                             text_color=self.scale_text,
                             line_color=self.scale_line,
                             line_thickness=self.scale_line_thickness,
                             value_range=value_range,
                             unit=unit)
         log_debug("Drawing scale bar!")
         if not self.scale_bar_outside_image:
             sc.draw(painter, size)
         else:
             if size is None:
                 viewport = painter.viewport()  # viewport rectangle
                 mat, ok = painter.worldMatrix().inverted()
                 if not ok:
                     raise ValueError(
                         "Transformation matrix of painter is singular.")
                 size = mat.mapRect(viewport)
             pic = QPicture()
             new_painter = QPainter()
             new_painter.begin(pic)
             bounding_rect = sc.draw(new_painter, size)
             new_painter.end()
             pic.setBoundingRect(pic.boundingRect()
                                 | bounding_rect.toRect())
             log_debug("Returning picture %s" % (pic, ))
             return pic
Beispiel #18
0
    def _plot(self, width, height, paint_device, plot_object = None, plot_method = None):
    
        if not plot_object:
            plot_object = self.controller
        if not plot_method:
            plot_method = plot_object.plot

        plot_object.setPlotWindow(width, height)
        
        canvas = DiPaintGLCanvas(paint_device)
        glpainter = DiPaintGLPainter(canvas)
        
        painter = QPainter()
        painter.begin(canvas.device())
        glpainter.begin(painter)
        painter.setRenderHints(self.renderHints)
        painter.setClipRect(QRect(0, 0, width, height))
        glpainter.Viewport(0, 0, width, height)

        value = plot_method(glpainter)
        transform = glpainter.transform
        
        glpainter.end()
        painter.end()

        return paint_device, value, transform
Beispiel #19
0
 def paintEvent( self, event ):
     """
     Overloads the paint event for this menu to draw its title based on its \
     show title property.
     
     :param      event | <QPaintEvent>
     """
     super(XMenu, self).paintEvent(event)
     
     if ( self.showTitle() ):
         painter = QPainter()
         painter.begin(self)
         
         palette = self.palette()
         
         painter.setBrush(palette.color(palette.Button))
         painter.setPen(Qt.NoPen)
         painter.drawRect(1, 1, self.width() - 2, 22)
         
         painter.setBrush(Qt.NoBrush)
         painter.setPen(palette.color(palette.ButtonText))
         painter.drawText(1, 1, self.width() - 2, 22, 
                          Qt.AlignCenter, self.title())
         
         painter.end()
Beispiel #20
0
 def paintEvent(self, e):
     painter = QPainter()
     reactantside = ""
     productside = ""
     reactantside += self._CurrentReaction.GetReactants()[0].GetFormula()
     for x in range(1, len(self._CurrentReaction.GetReactants())):
         reactant = self._CurrentReaction.GetReactants()[x]
         formula = reactant.GetFormula()
         moles = reactant.GetInitialMoles()
         if moles > 0:
             reactantside += " + " + formula
     productside += self._CurrentReaction.GetProducts()[0].GetFormula()
     for x in range(1, len(self._CurrentReaction.GetProducts())):
         product = self._CurrentReaction.GetProducts()[x]
         formula = product.GetFormula()
         moles = product.GetInitialMoles()
         if moles > 0:
             productside += " + " + formula
     painter.begin(self)
     painter.setFont(QFont("Arial", 20, 50, False))
     painter.setPen(QPen(Qt.red, 2, Qt.SolidLine))
     painter.drawText(376 - (len(reactantside) * 15), 40, reactantside)
     target = QRectF(378, 20, 44, 32)
     arrows = QPixmap("assets/double arrow.png")
     portion = QRectF(10, 0, 44, 32)
     painter.drawPixmap(target, arrows, portion)
     painter.setPen(QPen(Qt.blue, 2, Qt.SolidLine))
     painter.drawText(425, 40, productside)
     painter.end()
Beispiel #21
0
    def _drawIcon(self, color=Qt.black):
        self.setForeground(QBrush(color))

        if self.isRootNode:
            pixmap = QPixmap(20, 20)
            pixmap.fill(Qt.transparent)
            painter = QPainter()
            painter.begin(pixmap)
            pen = QPen(color)
            pen.setWidth(1)
            painter.setPen(pen)
            painter.setBrush(color)
            painter.setRenderHint(QPainter.Antialiasing)
            if not self.isExpanded:
                arrowRightPolygon = [
                    QPoint(6, 6), QPoint(6, 14),
                    QPoint(14, 10)
                ]
                painter.drawPolygon(QPolygon(arrowRightPolygon))
            else:
                arrowDownPolygon = [
                    QPoint(6, 6), QPoint(15, 6),
                    QPoint(10, 14)
                ]
                painter.drawPolygon(QPolygon(arrowDownPolygon))
            painter.end()
            self.setIcon(QIcon(pixmap))
Beispiel #22
0
    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, e):
     painter = QPainter()
     reactantside = ""
     productside = ""
     reactantside += self._CurrentReaction.GetReactants()[0].GetFormula()
     for x in range(1, len(self._CurrentReaction.GetReactants())):
         reactant = self._CurrentReaction.GetReactants()[x]
         formula = reactant.GetFormula()
         moles = reactant.GetInitialMoles()
         if moles > 0:
             reactantside += " + "+formula
     productside += self._CurrentReaction.GetProducts()[0].GetFormula()
     for x in range(1, len(self._CurrentReaction.GetProducts())):
         product = self._CurrentReaction.GetProducts()[x]
         formula = product.GetFormula()
         moles = product.GetInitialMoles()
         if moles > 0:
             productside += " + "+formula
     painter.begin(self)
     painter.setFont(QFont("Arial", 20, 50, False))
     painter.setPen(QPen(Qt.red, 2, Qt.SolidLine))
     painter.drawText(376 - (len(reactantside) * 15), 40, reactantside)
     target = QRectF(378, 20, 44, 32)
     arrows = QPixmap("assets/double arrow.png")
     portion = QRectF(10, 0, 44, 32)
     painter.drawPixmap(target, arrows, portion)
     painter.setPen(QPen(Qt.blue, 2, Qt.SolidLine))
     painter.drawText(425, 40, productside)
     painter.end()
    def paintEvent(self, event):

        painter = QPainter()
        painter.begin(self)

        painter.setRenderHint(QPainter.Antialiasing)
        painter.setPen(QPen(Qt.NoPen))
        painter.setBrush(QBrush(self.palette().color(QPalette.Highlight)))


        num = 8

        painter.translate(self.width()/2, self.height()/2)
        painter.rotate(360.0/num * (self.counter % num))

        for i in range(num):
            s = 25 + i

            x =  50 * math.cos(2.0 * math.pi * i / num) - s/2.0
            y =  50 * math.sin(2.0 * math.pi * i / num) - s/2.0


            painter.drawEllipse(
                x,
                y,
                s, s)
        painter.end()
Beispiel #25
0
 def updateFilledCircle(self, s):
     size = s * self.zoom
     pixmap = QPixmap(self.width(), self.height())
     pixmap.fill(Qt.transparent)
     #painter filled ellipse
     p = QPalette()
     painter = QPainter()
     painter.begin(pixmap)
     painter.setRenderHint(QPainter.Antialiasing)
     brush = QBrush(p.link().color())
     painter.setBrush(brush)
     painter.setOpacity(0.4)
     painter.drawEllipse(QRect(self.width()/2 - size/2, self.height()/2 - size/2, size, size))
     painter.end()
     #painter ellipse 2
     painter2 = QPainter()
     painter2.begin(pixmap)
     painter2.setRenderHint(QPainter.Antialiasing)
     pen2 = QPen(Qt.green)
     pen2.setWidth(1)
     painter2.setPen(pen2)
     painter2.drawEllipse(QRect(self.width()/2 - size/2, self.height()/2 - size/2, size, size))
     painter2.end()
     
     self.ellipseLabel.setPixmap(QPixmap(pixmap))
     self.lastSize = s
    def setNameAndBrush(self, sigma, color=Qt.black):
        self.sigma = sigma
        self.setText(
            decode_to_qstring("σ=%.1fpx" % self.sigma, "utf-8")
        )  # This file is encoded as utf-8, so this string should be decoded as such.
        total_window = 1 + 2 * int(self.sigma * self.window_size + 0.5)
        self.setToolTip("sigma = {:.1f} pixels, window diameter = {:.1f}".format(self.sigma, total_window))
        font = QFont()
        font.setPointSize(10)
        font.setBold(True)
        self.setFont(font)
        self.setForeground(color)

        pixmap = QPixmap(self.pixmapSize)
        pixmap.fill(Qt.transparent)
        painter = QPainter()
        painter.begin(pixmap)
        painter.setRenderHint(QPainter.Antialiasing, True)
        painter.setPen(color)
        brush = QBrush(color)
        painter.setBrush(brush)
        painter.drawEllipse(
            QRect(
                self.pixmapSize.width() / 2 - self.brushSize / 2,
                self.pixmapSize.height() / 2 - self.brushSize / 2,
                self.brushSize,
                self.brushSize,
            )
        )
        painter.end()
        self.setIcon(QIcon(pixmap))
        self.setTextAlignment(Qt.AlignVCenter)
Beispiel #27
0
  def _renderedImage2(self, width, height, extent, transp_background=False, layerids=None):
    antialias = True

    if self._renderer is None:
      self._initRenderer()

    canvas = self.context.canvas
    if layerids is None:
      layerids = [mapLayer.id() for mapLayer in canvas.layers()]

    renderer = self._renderer
    renderer.setLayerSet(layerids)

    image = QImage(width, height, QImage.Format_ARGB32_Premultiplied)
    if transp_background:
      image.fill(QColor(Qt.transparent).rgba())   #
    else:
      image.fill(canvas.canvasColor().rgba())   #

    renderer.setOutputSize(image.size(), image.logicalDpiX())
    renderer.setExtent(extent.unrotatedRect())

    painter = QPainter()
    painter.begin(image)
    if antialias:
      painter.setRenderHint(QPainter.Antialiasing)
    renderer.render(painter)
    painter.end()

    return tools.base64image(image)
    def drawROIBoxes(self, image):
        #print(self.frame_data)
        if not isinstance(self.frame_data, pd.DataFrame) or len(self.frame_data) == 0 \
        or not self.label_type in self.frame_data:
            return

        self.img_h_ratio = image.height() / self.image_height
        self.img_w_ratio = image.width() / self.image_width

        painter = QPainter()
        painter.begin(image)
        for row_id, row_data in self.frame_data.iterrows():
            x = row_data['coord_x'] * self.img_h_ratio
            y = row_data['coord_y'] * self.img_w_ratio
            #check if the coordinates are nan
            if not (x == x) or not (y == y):
                continue

            x = int(x)
            y = int(y)
            c = self.wlabC[int(row_data[self.label_type])]

            painter.setPen(c)
            painter.setFont(QFont('Decorative', 10))

            painter.drawText(x, y, str(int(row_data[self.worm_index_type])))

            bb = row_data['roi_size'] * self.img_w_ratio
            painter.drawRect(x - bb / 2, y - bb / 2, bb, bb)
        painter.end()
Beispiel #29
0
def draw_image(name, q):
  image = QSvgGenerator()
  image.setSize(QSize(IMAGE_SIZE, IMAGE_SIZE))
  image.setFileName(name + ".svg")

  painter = QPainter()
  painter.begin(image)
  painter.setBrush(Qt.white)
  painter.setPen(Qt.NoPen)
  painter.drawEllipse(QPointF(IMAGE_SIZE/2, IMAGE_SIZE/2), IMAGE_SIZE/2, IMAGE_SIZE/2)
  painter.setBrush(QBrush())
  painter.setPen(QPen())
  
  draw_defect(painter, q)
  draw_circle(painter, q)
  
  pen = QPen()
  pen.setWidth(7)
  pen.setColor(Qt.red)
  painter.setPen(pen)
  
  painter.drawLine(IMAGE_SIZE/2 - ARROW_SIZE, IMAGE_SIZE/2, IMAGE_SIZE/2 + ARROW_SIZE, IMAGE_SIZE/2)
  painter.drawLine(IMAGE_SIZE/2 + ARROW_SIZE, IMAGE_SIZE/2, IMAGE_SIZE/2 + ARROW_SIZE - 30, IMAGE_SIZE/2 + 20)
  painter.drawLine(IMAGE_SIZE/2 + ARROW_SIZE, IMAGE_SIZE/2, IMAGE_SIZE/2 + ARROW_SIZE - 30, IMAGE_SIZE/2 - 20)
  
  font = painter.font()
  font.setPixelSize(40)
  font.setBold(True)
  painter.setFont(font)
  painter.drawText(QPointF(IMAGE_SIZE/2 + ARROW_SIZE - 30, IMAGE_SIZE/2 - 30), "E")
  
  painter.end()
Beispiel #30
0
    def save_image():

        try:
            page = web.page()
            frame = page.currentFrame()

            # Grow the viewport to make it fit the whole document
            width = min_width
            height = min_height

            page.setViewportSize(QSize(width, height))

            while frame.scrollBarMaximum(Qt.Horizontal) != 0:
                width += 1
                page.setViewportSize(QSize(width, height))

            while frame.scrollBarMaximum(Qt.Vertical) != 0:
                height += 1
                page.setViewportSize(QSize(width, height))

            # Render the document to an image file
            image = QPixmap(width, height)
            painter = QPainter()
            painter.begin(image)
            frame.render(painter)
            painter.end()
            image.save(dest, format, quality)

        finally:
            QApplication.exit()
Beispiel #31
0
    def rerender_pdf_image(self):
        if self.ratio > RATIO_MIN:
            self.pdf_image = self.page1.renderToImage(PDF_BASE_RESOLUTION / self.ratio,
                                                     PDF_BASE_RESOLUTION / self.ratio,
                                                     self.x, self.y, self.w, self.h)
        else:
            # image1 = self.page1.renderToImage(PDF_BASE_RESOLUTION / self.ratio,
            #                                   PDF_BASE_RESOLUTION / self.ratio,
            #                                   self.x, self.y, self.w, self.h)
            # image2 = self.page2.renderToImage(PDF_BASE_RESOLUTION, # / self.ratio,
            #                                   PDF_BASE_RESOLUTION # / self.ratio,
            #                                   )
            #                                   # self.x, self.y, self.w, self.h)
            self.pdf_image = QImage(self.w, self.h, self.image1.format())
            self.pdf_image.fill(QtCore.Qt.white)

            painter = QPainter()
            painter.begin(self.pdf_image)
            painter.drawImage(self.pdf_image.rect(),
                              self.image1,
                              QRect(self.x * self.ratio/self.begin_ratio,
                                    self.y * self.ratio/self.begin_ratio,
                                    self.w * self.ratio/self.begin_ratio,
                                    self.h * self.ratio/self.begin_ratio))
            painter.end()
            
            x1 = MAGIC_RECT.x() / self.ratio - self.x
            y1 = MAGIC_RECT.y() / self.ratio - self.y
            h1 = MAGIC_RECT.height() / self.ratio
            w1 = MAGIC_RECT.width() / self.ratio
Beispiel #32
0
    def drawIcon(self, colorRamp):
        # input color ramp object: QgsVectorColorRampV2 object.
        # QgsVectorColorRampV2 is a virtual object, the real object name in
        # this case is QgsVectorGradientColorRampV2 object.
        mStops = colorRamp.stops()
        linearGradient = QLinearGradient(0.0, 50.0, 200.0, 50.0)
        for item in mStops:
            linearGradient.setColorAt(item.offset, item.color)
        linearGradient.setSpread(QGradient.PadSpread)

        svgName = os.path.join(os.path.dirname(__file__), self.text() + '.svg')
        pix = QSvgGenerator()
        pix.setFileName(svgName)
        pix.setSize(QSize(200, 100))
        painter = QPainter()
        painter.begin(pix)
        br = QBrush(linearGradient)
        painter.setBrush(br)
        painter.drawRect(QRect(0, 0, 200, 100))
        painter.end()

        pixmap = QPixmap(svgName)
        icon = QIcon(pixmap)
        self.svgName = svgName

        return icon
    def paintEvent(self, event):
        """
        Overloads the paint event to draw rounded edges on this widget.
        
        :param      event | <QPaintEvent>
        """
        super(XRolloutItem, self).paintEvent(event)

        painter = QPainter()
        painter.begin(self)

        w = self.width() - 3
        h = self.height() - 3

        color = self.palette().color(QPalette.Midlight)
        color = color.darker(180)
        pen = QPen(color)
        pen.setWidthF(0.5)

        painter.setPen(pen)
        painter.setBrush(self.palette().color(QPalette.Midlight))
        painter.setRenderHint(QPainter.Antialiasing)
        painter.drawRoundedRect(1, 1, w, h, 10, 10)

        painter.end()
 def paintEvent( self, event ):
     """
     Overloads the paint event to draw rounded edges on this widget.
     
     :param      event | <QPaintEvent>
     """
     super(XRolloutItem, self).paintEvent(event)
     
     painter = QPainter()
     painter.begin(self)
     
     w = self.width() - 3
     h = self.height() - 3
     
     color = self.palette().color(QPalette.Midlight)
     color = color.darker(180)
     pen = QPen(color)
     pen.setWidthF(0.5)
     
     painter.setPen(pen)
     painter.setBrush(self.palette().color(QPalette.Midlight))
     painter.setRenderHint(QPainter.Antialiasing)
     painter.drawRoundedRect(1, 1, w, h, 10, 10)
     
     painter.end()
Beispiel #35
0
    def paintEvent(self, event):
        """
        Overloads the paint event to handle painting pointers for the popup \
        mode.
        
        :param      event | <QPaintEvent>
        """
        # use the base technique for the dialog mode
        if self.currentMode() == XPopupWidget.Mode.Dialog:
            super(XPopupWidget, self).paintEvent(event)
            return

        # setup the coloring options
        palette = self.palette()

        painter = QPainter()
        painter.begin(self)

        pen = QPen(palette.color(palette.Window).darker(130))
        pen.setWidthF(1.75)
        painter.setPen(pen)
        painter.setRenderHint(painter.Antialiasing)
        painter.setBrush(palette.color(palette.Window))
        painter.drawPath(self.borderPath())
        painter.end()
    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)
Beispiel #37
0
    def updateFilledCircle(self, s):
        size = s * self.zoom
        pixmap = QPixmap(self.width(), self.height())
        pixmap.fill(Qt.transparent)
        #painter filled ellipse
        p = QPalette()
        painter = QPainter()
        painter.begin(pixmap)
        painter.setRenderHint(QPainter.Antialiasing)
        brush = QBrush(p.link().color())
        painter.setBrush(brush)
        painter.setOpacity(0.4)
        painter.drawEllipse(
            QRect(self.width() / 2 - size / 2,
                  self.height() / 2 - size / 2, size, size))
        painter.end()
        #painter ellipse 2
        painter2 = QPainter()
        painter2.begin(pixmap)
        painter2.setRenderHint(QPainter.Antialiasing)
        pen2 = QPen(Qt.green)
        pen2.setWidth(1)
        painter2.setPen(pen2)
        painter2.drawEllipse(
            QRect(self.width() / 2 - size / 2,
                  self.height() / 2 - size / 2, size, size))
        painter2.end()

        self.ellipseLabel.setPixmap(QPixmap(pixmap))
        self.lastSize = s
Beispiel #38
0
    def paintEvent(self, event):
        MARGIN_PIXELS = 4

        painter = QPainter()
        (r, g, b, alpha) = ImageUtils.rbgaTointValues(self.log.rgb,
                                                      self.log.alpha)

        lineColour = QColor(r, g, b, alpha)

        assert lineColour != None
        assert self.log.line_style != None

        lineStyle = WidgetUtils.getQtPenStyle(self.log.line_style)

        assert lineStyle != None
        assert self.log.line_width != None

        lineWidth = NumberUtils.floatToIntDefault(self.log.line_width, 1)
        pen = QPen(lineColour, lineWidth, lineStyle)

        painter.begin(self)
        painter.setPen(pen)
        labelMargin = self.logName_label.margin()
        yLevel = self.logName_label.rect().bottomLeft().y()
        xStart = labelMargin
        xStop = self.track.geometry().width() - labelMargin
        #line is relative to widget not screen
        painter.drawLine(xStart, yLevel, xStop, yLevel)

        painter.end()
	def drawROIBoxes(self, image):
		#print(self.frame_data)
		if not isinstance(self.frame_data, pd.DataFrame) or len(self.frame_data) == 0 \
		or not self.label_type in self.frame_data:
			return 
		 			
		self.img_h_ratio = image.height()/self.image_height;
		self.img_w_ratio = image.width()/self.image_width;

		painter = QPainter()
		painter.begin(image)
		for row_id, row_data in self.frame_data.iterrows():
			x = row_data['coord_x']*self.img_h_ratio
			y = row_data['coord_y']*self.img_w_ratio
			#check if the coordinates are nan
			if not (x == x) or  not (y == y): 
				continue

			x = int(x)
			y = int(y)
			c = self.wlabC[int(row_data[self.label_type])]
			
			painter.setPen(c)
			painter.setFont(QFont('Decorative', 10))
			
			painter.drawText(x, y, str(int(row_data[self.worm_index_type])))

			bb = row_data['roi_size']*self.img_w_ratio
			painter.drawRect(x-bb/2, y-bb/2, bb, bb);
		painter.end()
Beispiel #40
0
    def updateCircle(self, s):
        size = s * self.zoom
        pixmap = QPixmap(self.width(), self.height())
        pixmap.fill(Qt.transparent)
        #painter ellipse 1
        painter = QPainter()
        painter.begin(pixmap)
        painter.setRenderHint(QPainter.Antialiasing)
        pen = QPen(Qt.red)
        pen.setWidth(3)
        painter.setPen(pen)
        brush = QBrush(Qt.green)
        painter.setBrush(brush)
        painter.drawEllipse(
            QRect(self.width() / 2 - size / 2,
                  self.height() / 2 - size / 2, size, size))
        painter.end()
        #painter ellipse 2
        painter2 = QPainter()
        painter2.begin(pixmap)
        painter2.setRenderHint(QPainter.Antialiasing)
        pen2 = QPen(Qt.green)
        pen2.setStyle(Qt.DotLine)
        pen2.setWidth(3)
        painter2.setPen(pen2)
        painter2.drawEllipse(
            QRect(self.width() / 2 - size / 2,
                  self.height() / 2 - size / 2, size, size))
        painter2.end()

        self.ellipseLabel.setPixmap(QPixmap(pixmap))
        self.lastSize = s
  def renderedImage(self, width, height, extent, transp_background=False, layerids=None):
    if QGis.QGIS_VERSION_INT < 20700:
      return self._renderedImage2(width, height, extent, transp_background, layerids)

    from qgis.core import QgsMapRendererCustomPainterJob
    antialias = True

    # render map image with QgsMapRendererCustomPainterJob
    settings = self.context.canvas.mapSettings()
    settings.setOutputSize(QSize(width, height))
    settings.setExtent(extent.unrotatedRect())
    settings.setRotation(extent.rotation())

    if layerids:
      settings.setLayers(layerids)

    if transp_background:
      settings.setBackgroundColor(QColor(Qt.transparent))
    #else:    #TODO: remove
      #settings.setBackgroundColor(self.context.canvas.canvasColor())
 
    image = QImage(width, height, QImage.Format_ARGB32_Premultiplied)
    painter = QPainter()
    painter.begin(image)
    if antialias:
      painter.setRenderHint(QPainter.Antialiasing)

    job = QgsMapRendererCustomPainterJob(settings, painter)
    job.start()
    job.waitForFinished()
    painter.end()

    return tools.base64image(image)
Beispiel #42
0
    def exportAsImage(self):
        filename = unicode(
            QFileDialog.getSaveFileName(self,
                                        self.tr('Save Model As Image'), '',
                                        self.tr('PNG files (*.png *.PNG)')))
        if not filename:
            return

        if not filename.lower().endswith('.png'):
            filename += '.png'

        totalRect = QRectF(0, 0, 1, 1)
        for item in self.scene.items():
            totalRect = totalRect.united(item.sceneBoundingRect())
        totalRect.adjust(-10, -10, 10, 10)

        img = QImage(totalRect.width(), totalRect.height(),
                     QImage.Format_ARGB32_Premultiplied)
        img.fill(Qt.white)
        painter = QPainter()
        painter.setRenderHint(QPainter.Antialiasing)
        painter.begin(img)
        self.scene.render(painter, totalRect, totalRect)
        painter.end()

        img.save(filename)
Beispiel #43
0
 def paintEvent(self, event):
     """
     Overloads the paint event to handle painting pointers for the popup \
     mode.
     
     :param      event | <QPaintEvent>
     """
     # use the base technique for the dialog mode
     if self.currentMode() == XPopupWidget.Mode.Dialog:
         super(XPopupWidget, self).paintEvent(event)
         return
     
     # setup the coloring options
     palette = self.palette()
     
     painter = QPainter()
     painter.begin(self)
     
     pen = QPen(palette.color(palette.Window).darker(130))
     pen.setWidthF(1.75)
     painter.setPen(pen)
     painter.setRenderHint(painter.Antialiasing)
     painter.setBrush(palette.color(palette.Window))
     painter.drawPath(self.borderPath())
     painter.end()
Beispiel #44
0
 def paintEvent( self, event):
     painter = QPainter( )
     painter.begin(self)
     [S.draw(painter) for S in self.spriteList]
        
     self.boundary.draw(painter)
     painter.end( )
Beispiel #45
0
    def paintEvent(self, evt):
        # get the widget dimensions
        orig_width = self.width()
        orig_height = self.height()

        # fill perc % of the widget
        perc = 1
        width = int(orig_width * perc)
        height = int(orig_height * perc)

        # get the starting origin
        x_orig = int((orig_width - width) / 2)
        # we want to start at the bottom and draw up.
        y_orig = orig_height - int((orig_height - height) / 2)

        # a running x-position
        running_pos = x_orig

        # calculate to number of bars
        nbars = len(self.counts)

        # calculate the bar widths, this compilcation is
        # necessary because integer trunction severly cripples
        # the layout.
        remainder = width % nbars
        bar_width = [int(width / nbars)] * nbars
        for i in range(remainder):
            bar_width[i] += 1

        paint = QPainter()
        paint.begin(self)

        # determine the scaling factor
        max_val = np.max(self.counts)
        scale = 1. * height / max_val

        # determine if we have a colormap and drop into the appopriate
        # loop.
        if hasattr(self.colormap[0], '__iter__'):
            # assume we have a colormap
            for i in range(len(self.counts)):
                bar_height = self.counts[i]
                r, g, b = self.colormap[i]
                paint.setPen(QColor(r, g, b))
                paint.setBrush(QColor(r, g, b))
                paint.drawRect(running_pos, y_orig, bar_width[i], -bar_height)
                running_pos += bar_width[i]

        else:
            # we have a tuple
            r, g, b = self.colormap
            paint.setPen(QColor(r, g, b))
            paint.setBrush(QColor(r, g, b))
            for i in range(len(self.counts)):
                bar_height = self.counts[i] * scale
                paint.drawRect(running_pos, y_orig, bar_width[i], -bar_height)
                running_pos += bar_width[i]

        paint.end()
    def paintEvent(self, evt):
        # get the widget dimensions
        orig_width = self.width()
        orig_height = self.height()

        # fill perc % of the widget
        perc = 1
        width = int(orig_width * perc)
        height = int(orig_height * perc)

        # get the starting origin
        x_orig = int((orig_width - width) / 2)
        # we want to start at the bottom and draw up.
        y_orig = orig_height - int((orig_height - height) / 2)

        # a running x-position
        running_pos = x_orig

        # calculate to number of bars
        nbars = len(self.counts)

        # calculate the bar widths, this compilcation is
        # necessary because integer trunction severly cripples
        # the layout.
        remainder = width % nbars
        bar_width = [int(width / nbars)] * nbars
        for i in range(remainder):
            bar_width[i] += 1

        paint = QPainter()
        paint.begin(self)

        # determine the scaling factor
        max_val = np.max(self.counts)
        scale = 1.0 * height / max_val

        # determine if we have a colormap and drop into the appopriate
        # loop.
        if hasattr(self.colormap[0], "__iter__"):
            # assume we have a colormap
            for i in range(len(self.counts)):
                bar_height = self.counts[i]
                r, g, b = self.colormap[i]
                paint.setPen(QColor(r, g, b))
                paint.setBrush(QColor(r, g, b))
                paint.drawRect(running_pos, y_orig, bar_width[i], -bar_height)
                running_pos += bar_width[i]

        else:
            # we have a tuple
            r, g, b = self.colormap
            paint.setPen(QColor(r, g, b))
            paint.setBrush(QColor(r, g, b))
            for i in range(len(self.counts)):
                bar_height = self.counts[i] * scale
                paint.drawRect(running_pos, y_orig, bar_width[i], -bar_height)
                running_pos += bar_width[i]

        paint.end()
Beispiel #47
0
	def __setProgressPixmapInactive(self, pixmap):
		alpha = pixmap.alphaChannel()
		painter = QPainter()
		painter.begin(alpha)
		painter.setBrush(QBrush(QColor(0, 0, 0, 196)))
		painter.drawRect(pixmap.rect())
		painter.end()
		pixmap.setAlphaChannel(alpha)
Beispiel #48
0
def saveSprites(folder, sprites):
    if sprites:
        height = max([s.height() for s, s2x in sprites.values()])
        width = sum([s.width() for s, s2x in sprites.values()])
        img = QImage(width, height, QImage.Format_ARGB32)
        img.fill(QColor(Qt.transparent))
        img2x = QImage(width * 2, height * 2, QImage.Format_ARGB32)
        img2x.fill(QColor(Qt.transparent))
        painter = QPainter(img)
        painter.begin(img)
        painter2x = QPainter(img2x)
        painter2x.begin(img2x)
        spritesheet = {
            NO_ICON: {
                "width": 0,
                "height": 0,
                "x": 0,
                "y": 0,
                "pixelRatio": 1
            }
        }
        spritesheet2x = {
            NO_ICON: {
                "width": 0,
                "height": 0,
                "x": 0,
                "y": 0,
                "pixelRatio": 1
            }
        }
        x = 0
        for name, sprites in sprites.iteritems():
            s, s2x = sprites
            painter.drawImage(x, 0, s)
            painter2x.drawImage(x * 2, 0, s2x)
            spritesheet[name] = {
                "width": s.width(),
                "height": s.height(),
                "x": x,
                "y": 0,
                "pixelRatio": 1
            }
            spritesheet2x[name] = {
                "width": s2x.width(),
                "height": s2x.height(),
                "x": x * 2,
                "y": 0,
                "pixelRatio": 2
            }
            x += s.width()
        painter.end()
        painter2x.end()
        img.save(os.path.join(folder, "spriteSheet.png"))
        img2x.save(os.path.join(folder, "*****@*****.**"))
        with open(os.path.join(folder, "spriteSheet.json"), 'w') as f:
            json.dump(spritesheet, f)
        with open(os.path.join(folder, "*****@*****.**"), 'w') as f:
            json.dump(spritesheet2x, f)
Beispiel #49
0
def drawDay(xy, txt):
    painter = QPainter()

    painter.begin(qt_im)
    painter.setFont(QtGui.QFont('Helvetica', 50))
    painter.setPen(QPen(QtCore.Qt.gray))
    x0, y0 = xy
    painter.drawText(x0, y0, txt)
    painter.end()
Beispiel #50
0
 def saveExtra(self, picture, file_name, file_format):
     rect = picture.boundingRect()
     pix = QImage(rect.size(), QImage.Format_ARGB32)
     pix.fill(QColor(0, 0, 0, 0).rgba())
     paint = QPainter()
     paint.begin(pix)
     paint.drawPicture(rect.topLeft() * -1, picture)
     paint.end()
     pix.save(file_name, file_format)
Beispiel #51
0
 def paintEvent(self, event):
     super(Editor, self).paintEvent(event)
     if settings.SHOW_MARGIN_LINE:
         painter = QPainter()
         painter.begin(self.viewport())
         painter.setPen(QColor('#FE9E9A'))
         offset = self.contentOffset()
         painter.drawLine(self.pos_margin + offset.x(), 0, \
             self.pos_margin + offset.x(), self.viewport().height())
         painter.end()
Beispiel #52
0
    def paintEvent(self, event):

        qp = QPainter()
        qp.begin(self)
        qp.setPen(self.color)
        qp.setBrush(self.color)
        d = min(self.height(), self.width()) - self.table_padding
        qp.drawEllipse(self.width() // 2 - d // 2,
                       self.height() // 2 - d // 2, d, d)
        qp.end()
Beispiel #53
0
 def paintEvent(self, event):
     qp = QPainter()
     qp.begin(self)
     qp.setBrush(self.gradient)
     qp.setPen(Qt.transparent)
     qp.drawRect(0, 0, self.SIZE_X, self.SIZE_Y)
     qp.setBrush(QBrush(Qt.red))
     qp.setPen(Qt.red)
     qp.drawLine(0, self.reflectivity, self.SIZE_X, self.reflectivity)
     qp.end()
Beispiel #54
0
    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()
Beispiel #55
0
def drawLabel(start, end, txt):
    painter = QPainter()

    painter.begin(qt_im)
    painter.setFont(QtGui.QFont('Helvetica', 30))
    painter.setPen(QPen(QtCore.Qt.blue))
    x0, y0 = start
    x1, y1 = end
    painter.drawText((x0 + x1)/2, y0 - 20, txt)
    painter.end()
Beispiel #56
0
 def paintEvent(self, event):
     qp = QPainter()
     qp.begin(self)
     qp.setBrush(QBrush(self.color))
     qp.setPen(self.color)
     qp.drawRect(0, 0, 25, 25)
     qp.setBrush(Qt.NoBrush)
     qp.setPen(Qt.black)
     qp.drawRect(1, 1, 24, 24)
     qp.end()
Beispiel #57
0
 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)
Beispiel #58
0
 def drawPixmapForUnckecked(self):
     self.pixmapUnckecked = QPixmap(self.itemWidth, self.itemHeight)
     self.pixmapUnckecked.fill(Qt.transparent)
     painter = QPainter()
     painter.begin(self.pixmapUnckecked)
     painter.setRenderHint(QPainter.Antialiasing)
     pen = QPen()
     pen.setWidth(2)
     painter.setPen(pen)
     painter.drawRect(QRect(5,5,self.itemWidth-10, self.itemHeight-10))
     painter.end()