import sys,math from PyQt5.QtGui import QPainter,QPolygon,QPainterPath from PyQt5.QtWidgets import QWidget,QApplication from PyQt5.QtCore import Qt class DrawDemo(QWidget): def __init__(self,parent=None): super(DrawDemo,self).__init__(parent) #self.resize(400,200) self.setWindowTitle('在窗口画点') def paintEvent(self,event): #实例化 painter=QPainter() #开始在窗口绘制 painter.begin(self) #设置画笔颜色 painter.setPen(Qt.blue) painter.setPen(Qt.DashLine) #painter.setPen(20) #画线painter.drawline(x1,y1,x2,y2) painter.drawLine(100,50,200,100) #画点 #painter.drawPoint(210,120) #画矩形drawRect(int x,int y,int w,int h) #painter.drawRect(100,100,100,10) #画椭圆 #painter.drawEllipse(100,50,100,50) #画文本 #painter.drawText(100,100,"this is draw text") #画多边形 #polygon = QPolygon() #polygon.setPoints(10,30,100,40,200,50,60,90,25) #painter.drawPolygon(polygon) #画扇形 #painter.drawPie(100,100,200,200,75,400) #画弧形 #painter.drawArc(100,100,200,200,150,1000) #画路径 ''''' path = QPainterPath() path.addRect(100, 100, 100, 100) path.addEllipse(150, 150, 60, 80) painter.setBrush(Qt.red) # path.setFillRule(Qt.WindingFill) #非零填充规则 path.setFillRule(Qt.OddEvenFill) # 奇偶填充规则 painter.drawPath(path) ''' if __name__ == '__main__': app=QApplication(sys.argv) demo=DrawDemo() demo.show() sys.exit(app.exec_())
参考:PyQt5基本控件详解之QPainter(十七)_jia666666的博客-CSDN博客_pyqt5 qpainter