Exemple #1
0
    def paintEvent(self, ev=None):
        drawing_rect = QRect()
        drawing_rect.setX(self._padding)
        drawing_rect.setY(self._padding)
        drawing_rect.setWidth(self._size)
        drawing_rect.setHeight(self._size)

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

        gradient = QConicalGradient()
        gradient.setCenter(drawing_rect.center())
        gradient.setAngle(-self._angle - self._size / 10)
        gradient.setColorAt(0, QColor(178, 255, 246))
        gradient.setColorAt(1, QColor(5, 44, 50))

        pen = QPen(QBrush(gradient), self._size // 10)
        pen.setCapStyle(Qt.RoundCap)
        painter.setPen(pen)
        painter.drawArc(drawing_rect, -self._angle * 16, 300 * 16)
# 线性渐变
linearGradient = QLinearGradient(0, 0, 1, 1)
linearGradient.setColorAt(0.0, Qt.green)
linearGradient.setColorAt(0.2, Qt.white)
linearGradient.setColorAt(0.4, Qt.blue)
linearGradient.setColorAt(0.6, Qt.red)
linearGradient.setColorAt(1.0, Qt.yellow)

print(GradientUtils.styleSheetCode(linearGradient))

# 辐射渐变
radialGradient = QRadialGradient(0, 0, 1, 1, 110)
radialGradient.setColorAt(0, Qt.green)
radialGradient.setColorAt(0.4, Qt.blue)
radialGradient.setColorAt(1.0, Qt.yellow)

print(GradientUtils.styleSheetCode(radialGradient))

# 弧度渐变
conicalGradient = QConicalGradient(0.5, 0.5, 0)
conicalGradient.setAngle(0.5)
conicalGradient.setColorAt(0, Qt.green)
conicalGradient.setColorAt(0.2, Qt.white)
conicalGradient.setColorAt(0.4, Qt.blue)
conicalGradient.setColorAt(0.6, Qt.red)
conicalGradient.setColorAt(0.8, Qt.yellow)

print(GradientUtils.styleSheetCode(conicalGradient))

print(GradientUtils.styleSheetCode(QColor(Qt.blue)))
Exemple #3
0
    def drawWidget(self, painter):
        # Поиск лучшего местоположения для томата

        size = self.size()
        x, y = size.width(), size.height()

        sec = self.current_time % 60
        min = self.current_time // 60

        angle = self.current_time / self.default_time
        if sec and min:
            rend_text = "{}:{}".format(min, sec)
        elif sec:
            rend_text = "{}".format(sec)
        elif min:
            rend_text = "{}:0".format(min)
        else:
            rend_text = "0"
            self.is_active = 0
            self.current_time = self.default_time
            self.alarmSound.play()
        if x < y - 70:

            center = (x / 2, (y - 20) / 2 + 20)
            notcenter = x / 2 - 20
        else:
            center = (x / 2, y / 2 + 20)
            notcenter = y / 2 - 60

        gradient = QConicalGradient(QPointF(*center), 0)
        gradient.setAngle(90)

        gradient.setColorAt(0, QColor("911e42"))
        if angle != 1 or not self.is_active:
            gradient.setColorAt(1, QColor("#4a75c1"))

        if self.is_active:
            gradient.setColorAt(angle, QColor("#9c7130"))

        brush = QBrush(gradient)
        painter.setBrush(brush)

        self.centerx = center[0]
        self.highy = center[1] - notcenter

        self.font = QFont("Helvetica [Cronyx]", int(notcenter / 6))
        painter.setFont(self.font)
        painter.drawEllipse(QPointF(*center), notcenter, notcenter)

        pen = QPen(QColor("#111100"))
        painter.setPen(pen)

        painter.drawText(*center, rend_text)

        gradient = QConicalGradient(QPointF(x / 4, self.highy / 2), 0)
        gradient.setAngle(90)
        gradient.setColorAt(0, QColor("#faff53"))
        gradient.setColorAt(0.125, QColor("#23c900"))
        gradient.setColorAt(0.25, QColor("#faff53"))
        gradient.setColorAt(0.375, QColor("#23c900"))
        gradient.setColorAt(0.5, QColor("#faff53"))
        gradient.setColorAt(0.625, QColor("#23c900"))
        gradient.setColorAt(0.75, QColor("#faff53"))
        gradient.setColorAt(0.875, QColor("#23c900"))
        gradient.setColorAt(1, QColor("#faff53"))
        painter.setBrush(gradient)
        painter.drawRect(
            QRectF(QPoint(0, 0), QPoint(self.centerx, self.highy - 1)))

        gradient = QConicalGradient(QPointF(x * 3 / 4, self.highy / 2), 0)
        gradient.setColorAt(0, QColor("#fff0f0"))
        gradient.setColorAt(0.1, QColor("#f4432a"))
        gradient.setColorAt(0.4, QColor("#f4432a"))
        gradient.setColorAt(0.5, QColor("#fff0f0"))
        gradient.setColorAt(0.6, QColor("#f4432a"))
        gradient.setColorAt(0.9, QColor("#f4432a"))
        gradient.setColorAt(1, QColor("#fff0f0"))
        painter.setBrush(gradient)
        painter.drawRect(
            QRectF(QPoint(x, 0), QPoint(self.centerx, self.highy - 1)))