コード例 #1
0
    def brushChanged(self):
        style = QtCore.Qt.BrushStyle(
            self.brushStyleComboBox.itemData(
                self.brushStyleComboBox.currentIndex(), IdRole))

        if style == QtCore.Qt.LinearGradientPattern:
            linearGradient = QtGui.QLinearGradient(0, 0, 100, 100)
            linearGradient.setColorAt(0.0, QtCore.Qt.white)
            linearGradient.setColorAt(0.2, QtCore.Qt.green)
            linearGradient.setColorAt(1.0, QtCore.Qt.black)
            self.renderArea.setBrush(QtGui.QBrush(linearGradient))
        elif style == QtCore.Qt.RadialGradientPattern:
            radialGradient = QtGui.QRadialGradient(50, 50, 50, 70, 70)
            radialGradient.setColorAt(0.0, QtCore.Qt.white)
            radialGradient.setColorAt(0.2, QtCore.Qt.green)
            radialGradient.setColorAt(1.0, QtCore.Qt.black)
            self.renderArea.setBrush(QtGui.QBrush(radialGradient))
        elif style == QtCore.Qt.ConicalGradientPattern:
            conicalGradient = QtGui.QConicalGradient(50, 50, 150)
            conicalGradient.setColorAt(0.0, QtCore.Qt.white)
            conicalGradient.setColorAt(0.2, QtCore.Qt.green)
            conicalGradient.setColorAt(1.0, QtCore.Qt.black)
            self.renderArea.setBrush(QtGui.QBrush(conicalGradient))
        elif style == QtCore.Qt.TexturePattern:
            self.renderArea.setBrush(
                QtGui.QBrush(QtGui.QPixmap(':/images/brick.png')))
        else:
            self.renderArea.setBrush(QtGui.QBrush(QtCore.Qt.green, style))
コード例 #2
0
    def rebuildDataBrushIfNeeded(self):
        if self.rebuildBrush:
            self.rebuildBrush = False

            dataBrush = QtGui.QConicalGradient()
            dataBrush.setCenter(0.5, 0.5)
            dataBrush.setCoordinateMode(QtGui.QGradient.StretchToDeviceMode)

            for pos, color in self.gradientData:
                dataBrush.setColorAt(1.0 - pos, color)

            # angle
            dataBrush.setAngle(self.nullPosition)

            p = self.palette()
            p.setBrush(QtGui.QPalette.Highlight, dataBrush)
            self.setPalette(p)
コード例 #3
0
    def __init__(self):
        QtGui.QWidget.__init__(self)
        size = 24
        self.setFixedSize(size, size)
        self.pen_width = 5
        top = left = self.pen_width / 2.
        bottom = right = size - 1 - self.pen_width
        self.area = QtCore.QRectF(top, left, right, bottom)
        self.brush = QtGui.QConicalGradient(.5, .5, 0)
        self.brush.setCoordinateMode(QtGui.QConicalGradient.ObjectBoundingMode)
        self.brush.setColorAt(0, QtCore.Qt.darkGray)
        self.brush.setColorAt(1, QtCore.Qt.lightGray)
        self.pen = QtGui.QPen(self.brush, self.pen_width)

        self.loading_timer = QtCore.QTimer()
        self.loading_timer.setInterval(20)
        self.loading_timer.timeout.connect(self.rotate)
コード例 #4
0
    def paintEvent(self, event):
        painter = QtGui.QPainter(self)
        painter.setRenderHint(painter.Antialiasing)
        rect = event.rect()

        gauge_rect = QtCore.QRect(rect)
        size = gauge_rect.size()
        pos = gauge_rect.center()
        gauge_rect.moveCenter(
            QtCore.QPoint(pos.x() - size.width(),
                          pos.y() - size.height()))
        gauge_rect.setSize(size * .9)
        gauge_rect.moveCenter(pos)

        refill_rect = QtCore.QRect(gauge_rect)
        size = refill_rect.size()
        pos = refill_rect.center()
        refill_rect.moveCenter(
            QtCore.QPoint(pos.x() - size.width(),
                          pos.y() - size.height()))
        # smaller than .9 == thicker gauge
        refill_rect.setSize(size * .9)
        refill_rect.moveCenter(pos)

        painter.setPen(QtCore.Qt.NoPen)

        painter.drawPixmap(rect, self._bg)

        painter.save()
        grad = QtGui.QConicalGradient(QtCore.QPointF(gauge_rect.center()),
                                      270.0)
        grad.setColorAt(.75, QtCore.Qt.green)
        grad.setColorAt(.5, QtCore.Qt.yellow)
        grad.setColorAt(.25, QtCore.Qt.red)
        painter.setBrush(grad)
        painter.drawPie(gauge_rect, 225.0 * 16, self._value * 16)
        painter.restore()

        painter.setBrush(QtGui.QBrush(self._bg.scaled(rect.size())))
        painter.drawEllipse(refill_rect)

        super(GaugeWidget, self).paintEvent(event)
コード例 #5
0
ファイル: color.py プロジェクト: luckylyk/mini_games
    def initUI(self):
        self._conicalGradient = QtGui.QConicalGradient(
            self.width() / 2, self.height() / 2, 180)
        self._conicalGradient.setColorAt(0.0, QtGui.QColor(0, 255, 255))
        self._conicalGradient.setColorAt(0.16, QtGui.QColor(0, 0, 255))
        self._conicalGradient.setColorAt(0.33, QtGui.QColor(255, 0, 255))
        self._conicalGradient.setColorAt(0.5, QtGui.QColor(255, 0, 0))
        self._conicalGradient.setColorAt(0.66, QtGui.QColor(255, 255, 0))
        self._conicalGradient.setColorAt(0.83, QtGui.QColor(0, 255, 0))
        self._conicalGradient.setColorAt(1.0, QtGui.QColor(0, 255, 255))

        self._vertical_gradient = QtGui.QLinearGradient(
            0, self._rect.top(),
            0, self._rect.top() + self._rect.height())
        self._vertical_gradient.setColorAt(0.0, QtGui.QColor(0, 0, 0, 0))
        self._vertical_gradient.setColorAt(1.0, QtGui.QColor(0, 0, 0))

        self._horizontal_gradient = QtGui.QLinearGradient(
            self._rect.left(), 0,
            self._rect.left() + self._rect.width(), 0)
        self._horizontal_gradient.setColorAt(0.0, QtGui.QColor(255, 255, 255))
コード例 #6
0
	def __init__(self, centerX = 0, centerY = 0, angle = 0, alpha = 1):
		super(ConicalGradientColor, self).__init__(alpha)
		
		self.value = QtGui.QConicalGradient(centerX, centerY, angle)
コード例 #7
0
ファイル: gauge.py プロジェクト: z199416/tutorials
    def paintEvent(self, event):
        """
        paintEvent(QPaintEvent event)

        Custom paint event to draw the gauge. 
        """
        # In this paint event, we start with the original
        # rectangle region from the QPaintEvent, and progressively
        # shrink it down from the center to add more and more layers.

        painter = QtGui.QPainter(self)
        painter.setRenderHint(painter.Antialiasing)

        rect = event.rect()
        center = QtCore.QPointF(rect.center())

        painter.setPen(QtCore.Qt.NoPen)

        #
        # outer rim
        #
        grad = QtGui.QConicalGradient(center, 315)
        dark = QtGui.QColor(35, 35, 35)
        light = QtGui.QColor(185, 185, 185)
        grad.setStops([(0.0, dark), (0.5, light), (1.0, dark)])
        painter.setBrush(grad)
        painter.drawEllipse(rect)

        #
        # inner rim
        #
        inner_bevel = self.centerScaleRect(rect, .93)
        grad.setAngle(135)
        dark = QtGui.QColor(80, 80, 80)
        grad.setColorAt(0.0, dark)
        grad.setColorAt(1.0, dark)
        painter.setBrush(grad)
        painter.drawEllipse(inner_bevel)

        #
        # flat gray surface
        #
        inside_panel = self.centerScaleRect(inner_bevel, .95)
        flat_gray = QtGui.QColor(50, 50, 50)
        painter.setBrush(flat_gray)
        painter.drawEllipse(inside_panel)

        #
        # colored gauge values
        #
        grad.setAngle(270)
        grad.setStops([(.2, QtGui.QColor(205, 0, 0)), (.5, QtCore.Qt.yellow),
                       (.8, QtGui.QColor(0, 205, 0))])
        painter.setBrush(grad)

        # This remaps the float value to the stop angle
        # appropriate for the drawPie() in the paint method
        # Negative values mean clockwise
        # http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qpainter.html#drawPie
        stopAngle = self._value * -270

        # start and stop angle for drawPie() are in 1/16th of a degree
        # incriments, so we mult them by 16
        painter.drawPie(inside_panel, 225.0 * 16, stopAngle * 16)

        #
        # fill back in the inner flat gray surface (cutout)
        #
        inside_panel = self.centerScaleRect(inside_panel, .9)
        painter.setBrush(flat_gray)
        painter.drawEllipse(inside_panel)

        super(GaugeWidget, self).paintEvent(event)