from PyQt5.Qt import *
from PyQt5.QtCore import Qt
import random
class LightButton(QWidget):
def __init__(self,color='red'):
super().__init__()
self.on_color=QColor(color)
self.off_color=QColor(80,80,80)
self.color=self.on_color
self.is_on=True
def paintEvent(self, event) -> None:
painter=QPainter(self)
painter.setRenderHint(QPainter.RenderHint.Antialiasing) # 抗锯齿
brush=QBrush()
brush.setColor(self.color)
brush.setStyle(Qt.BrushStyle.Dense2Pattern)
painter.setBrush(brush)
painter.begin(self)
painter.drawEllipse(self.rect())
painter.end()
return super().paintEvent(event)
def on(self):
self.color=self.on_color
self.is_on=True
self.repaint()
def off(self):
self.color=self.off_color
self.is_on=False
self.repaint()
def turn(self):
if self.is_on:
self.on()
else:
self.off()
def switch(self):
if self.is_on:
self.off()
else:
self.on()
pyqt-绘制组件(paintevent)
最新推荐文章于 2024-04-14 10:10:53 发布