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

it2025-12-29  11

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

最新回复(0)