Pyqt5:Qpainter绘制文本、图形和图像

PyQt5的绘图系统可用于渲染矢量图形、图像和文本。
pyqt5使用QPainter绘制基础图形,包含:1,文本 ;2,各种图形(直线,点,椭圆,弧,扇形,多边形等);3,图像。

基础知识
1、QPainter包含3各基本图形对象:画笔QPen、画刷QBrush、图像QPixmap。QPen和QBrush分别指图形的轮廓和填充;
在这里插入图片描述

2、必须在painterEvent事件方法中绘制各种元素
流程:(1)初始化 paniter=QPainter() (2)开始 painter.begin() (3)绘制: painter.drawText(…) (4)绘制结束painter.end()

def paintEvent(self, e):  # 绘图事件
        qp = QPainter()    
        qp.begin(self) 
        。。。#绘制图形
        qp.end()

一、绘制文本

	def paintEvent(self, e):  # 绘图事件
        qp = QPainter()    
        qp.begin(self)    
        self.drawText(e, qp)
        qp.end()
        
    def drawText(self, event, qp):
        qp.setPen(QColor(168, 34, 3))
        qp.setFont(QFont('Decorative', 10))
        qp.drawText(event.rect(), Qt.AlignCenter, "绘制文本")  

在这里插入图片描述二、绘制矩形

	def paintEvent(self, e):  # 绘图事件
        qp = QPainter()     
        qp.begin(self)      
        self.drawRectangles1(qp) #绘制线条矩形
        self.drawRectangles2(qp) #绘制填充矩形
        self.drawRectangles3(qp) #绘制线条+填充矩形
        self.drawRectangles4(qp) #绘制线条矩形2
        qp.end()
    def drawRectangles1(self, qp):  #绘制填充矩形
        qp.setPen(QPen(Qt.black, 2, Qt.SolidLine))  #颜色、线宽、线性
        qp.drawRect(*self.data) 

    def drawRectangles2(self, qp):  #绘制填充矩形
        qp.setPen(QPen(Qt.black, 2, Qt.NoPen))    
        qp.setBrush(QColor(200, 0, 0)) 
        qp.drawRect(220, 15, 200, 100)  
    
    def drawRectangles3(self, qp):  #绘制线条+填充矩形
        qp.setPen(QPen(Qt.black, 2, Qt.SolidLine))    
        qp.setBrush(QColor(200, 0, 0))     
        qp.drawRect(430, 15, 200, 100)  
        
    def drawRectangles4(self, qp):  #绘制线条矩形2
        path = QtGui.QPainterPath()
        qp.setPen(QPen(Qt.blue, 2, Qt.SolidLine))
        qp.setBrush(QColor(0, 0, 0, 0))      # 设置画刷颜色透明
        path.addRect(100,200,200,100)
        qp.drawPath(path)

在这里插入图片描述
三、绘制图像

def paintEvent(self, e):  # 绘图事件
        qp = QPainter() 
        qp.begin(self)
        self.drawPic(qp)
        qp.end()
        
def drawPic(self, qp):      
        img= QImage('python.jpg')   #读取图像文件
        rect=QRect(200,100,img.width()/2,img.height()/2) #进行绘制,对图片的大小压说为原来的二分之一
        qp.drawImage(rect,img)

在这里插入图片描述四、Qpen 的Qt.PenStyle
在这里插入图片描述五、Qbrush 的brush-styles

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值