def paintEvent(self, QPaintEvent, nullptr=None):
painter = QPainter(self)
painter.setPen(QColor(120, 110, 250, 250))
#painter.begin(self)
# 画3个内嵌圆
pmin = min(self.width(), self.height())
center = QPoint(self.width() / 2, self.height() / 2)
painter.drawEllipse(center, pmin / 2, pmin / 2)
painter.drawEllipse(center, pmin / 3, pmin / 3)
painter.drawEllipse(center, pmin / 6, pmin / 6)
# 画方格
for i in range(0, self.width(), 20):
painter.drawLine(i + 0.5, 0, i + 0.5, self.height())
for j in range(0, self.height(), 20):
painter.drawLine(0, j + 0.5, self.width(), j + 0.5)
####生成随机数
m_points = []
qsrand(QTime(0, 0, 0).secsTo(QTime.currentTime()))
m_points.clear()
for i in range(5):
alpha = qrand() % 100 + 40
px = qrand() % self.width()
py = qrand() % self.height()
m_points.append(QPoint(px, py))
m_points.append(alpha)
print(m_points)
####
#####余晖视觉及点位
if self.m_drawable:
# time.sleep(1)
diff = int(qAbs(self.width() - self.height()) / 2)
gradient = QConicalGradient(self.width() / 2, self.height() / 2, self.m_angle + 180) ###锥形渐变色
gradient.setColorAt(0.1, QColor(15, 45, 188, 200))
gradient.setColorAt(0.7, QColor(15, 45, 188, 0))
painter.setBrush(gradient)
painter.setPen(QPen(Qt.NoPen))
if self.width() > self.height():
painter.drawPie(diff, 0, pmin, pmin, self.m_angle * 16, 60 * 16)
else:
painter.drawPie(0, diff, pmin, pmin, self.m_angle * 16, 60 * 16)
###打点操作
for i in range(5):
if i % 2 == 0:
if (m_points[i].x()>pmin/2) and (m_points[i].x()>pmin/2):
print(m_points[i].x(),"========================",pmin/2)
painter.setBrush(QBrush(QColor(255, 0, 0, m_points[i+1]*2))) # alpha #蓝15, 45, 188
elif (m_points[i].x()>pmin/3) and (m_points[i].x()>pmin/3):
print(m_points[i].x(), "========================", pmin / 3)
painter.setBrush(QBrush(QColor(15, 45, 188, m_points[i+1]*2))) # alpha #蓝15, 45, 188
elif (m_points[i].x()>pmin/6) and (m_points[i].x()>pmin/6):
print(m_points[i].x(), "========================", pmin / 6)
painter.setBrush(QBrush(QColor(0, 255, 0, m_points[i+1]*2))) # alpha #绿0, 255, 0
painter.drawEllipse(m_points[i], 7, 7) # point
self.m_angle -= 2
painter.end() # 界面刷新为
self.update()
源码下载