Pyqt5:Qpainter绘制基础图形(一)

2023-03-10 13:41:25 浏览数 (1)

入手pyqt没有几天,想把pyqt系类基础挨个实践一遍。 这一节是pyqt5的QPainter绘制基础图形。 开发环境:

代码语言:javascript复制
   系统:Windows 64位
   IDE:VS2017
   Python:python3.6
   pyqt:pyqt5.10.1

一些注意事项: QPainter基础流程为:

代码语言:javascript复制
    def paintEvent(self, QPaintEvent):
            painter = QPainter(self)
            painter.setPen(QColor(166,66,250))          
            painter.begin(self)
            painter.draw-----#绘制函数
            painter.end()   

界面刷新为:

代码语言:javascript复制
self.update()

画笔设置:

代码语言:javascript复制
painter.setPen(QColor(166,66,250))  

画点:

代码语言:javascript复制
painter.drawPoint(100,100)

画线:

代码语言:javascript复制
painter.drawLine(100,100,200,200)

画圆:

代码语言:javascript复制
painter.drawEllipse(150,150,100,100)

画矩形:

代码语言:javascript复制
painter.drawRect(100,100,100,150)

画文本:

代码语言:javascript复制
painter.drawText(120,120,"文字")

画多边形:

代码语言:javascript复制
                polygon = QPolygon()
                polygon.setPoints(5,100,100,140,130,160,160,170,140,140,178)
                painter.drawPolygon(polygon)

画扇形:

代码语言:javascript复制
painter.drawPie(100,100,200,200,0*16,120*16)

画弧形:

代码语言:javascript复制
painter.drawArc(100,100,200,200,30*16,120*16)

画路径:

代码语言:javascript复制
                path = QPainterPath()
                path.addRect(100,100,100,100)
                path.addEllipse(150,150,60,80)
                painter.setBrush(Qt.blue)
                #path.setFillRule(Qt.WindingFill) #非零填充规则
                path.setFillRule(Qt.OddEvenFill) #奇偶填充规则
                painter.drawPath(path)

下边是UI界面:

项目思路为: 点击对应按钮绘制特定图形。 下边为源码: 文件源码

0 人点赞