首页 > 编程知识 正文

pyqt界面设计,qpainter使用图片作为画板

时间:2023-05-03 05:58:19 阅读:37246 作者:4084

1、QPainter常用方法

方法说明begin )开始在目标设备上绘制drawArc )。 在起始角度和最终角度之间绘制圆弧。 drawEliipse )在矩形中绘制椭圆。 Drawline(intx1、int y1、int x2、qrdsn )绘制具有端点坐标的直线,而y2 (绘制图像)指定当前画笔位置)从图像文件中提取Pixmap,并将其显示在指定位置。 绘制多边形(drawPolygon ) )使用坐标阵列绘制多边形Drawrect(intx,int y,int w,int h ),然后从左上角的坐标(x )开始以给定的宽度和高度绘制y )矩形。 drawText ) )显示指定坐标处的文本。 fillRext ) )使用QColor参数填充矩形setBrush ) )。 设置画笔样式setPen ) )设置用于绘制的笔的颜色、大小和样式设置setPen选项参数

参数说明Qt.NoPen没有线Qt.SolidLine简单的线Qt.DashLine由几个像素分隔的短线Qt.DotLine由几个像素分隔。 Qt.DashDotLine交替为点和短线Qt.DashDotDotLine为一条短线,两点Qt.Ming/usr/zsdwk/env python3#-*-coding : utf 8/20 importsysfrompyqu from pyqt5. qtguiimport * from pyqt5. qtcoreimport * class drawing (q构件) :def__init_ ) parent=None self(_init_(parent ) self.setWindowTitle ) (在窗口中绘制字符) self.setwindowicon (qi con ) ' head.png event ) : painter=QPainter ) painter.begin ) self ) #自定义绘制方法self.draw_text ) event,painter(painter.end ) def qp ) : #画笔颜色qp.setpen设置(qcolor ) 168、34、3 ) )设置字体qp.20 ) #绘图字符qp.drawtext(event.rect )、Qt.alilior

首先定义文本

self.text=“你好,总裁余”

定义绘图事件

defpaintevent (自,事件) :

自定义绘制方法

defdraw_text(self,event,qp ) :

画虚线

#!/usr/zsdwk/env python3#-*-coding : utf-8-* # @ author : yuden gwu # @ date 33602020/8/20 importsys, mathfrompyqt5. qtwidgetsimport * from pyqt5. qtguiimport * from pyqt5. qtcoreimportqtclassdrawing (q构件(q构件) 3360def___ () ) ) ) parent=none (3360 super (持续时间) 200 ) self.setWindowTitle (在窗口中绘制点) (self.setwindowicon ) qi con (limi.jpg ) ) (defpaintevent ) self, 事件) : #初始化绘制工具qp=qpainter(qp.begin ) self ) #自定义绘制点方法self.draw points (qp ) qp.end ) defDrawpoints (自绘制点方法) qp ) : #qp.setpen(Qt.red ) size=self.size确定当前窗口大小forIinrange(1000 ) :然后绘制签名。 周期[-1

000,1000] x = 100 * (- 1 + 2.0 * i / 1000) + size.width() / 2.0 y = -50 * math.sin((x - size.width() / 2.0) * math.pi / 50) + size.height() / 2.0 qp.drawPoint(x, y)if __name__ == "__main__": app = QApplication(sys.argv) win = Drawing() win.show() sys.exit(app.exec_()) 2、QPen

QPen(钢笔)是基本图形对象,用于绘制直线、曲线或者给轮廓画出矩形、椭圆形、多边形以及其他形状等

import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import *from PyQt5.QtCore import Qt class Drawing(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self): self.setGeometry(300, 300, 280, 270)self.setWindowTitle('钢笔样式例子') def paintEvent(self, e): qp = QPainter()qp.begin(self)self.drawLines(qp)qp.end()def drawLines(self, qp):pen = QPen(Qt.black, 2, Qt.SolidLine)qp.setPen(pen)qp.drawLine(20, 40, 250, 40)pen.setStyle(Qt.DashLine)qp.setPen(pen)qp.drawLine(20, 80, 250, 80)pen.setStyle(Qt.DashDotLine)qp.setPen(pen)qp.drawLine(20, 120, 250, 120)pen.setStyle(Qt.DotLine)qp.setPen(pen)qp.drawLine(20, 160, 250, 160)pen.setStyle(Qt.DashDotDotLine)qp.setPen(pen)qp.drawLine(20, 200, 250, 200)pen.setStyle(Qt.CustomDashLine)pen.setDashPattern([1, 4, 5, 4])qp.setPen(pen)qp.drawLine(20, 240, 250, 240)if __name__ == '__main__':app = QApplication(sys.argv)demo = Drawing()demo.show()sys.exit(app.exec_()) 3、QBrush

QBrush(画刷),用于填充如矩形、椭圆形或多边形等形状。
QBrush 有三种类型:预定义、过渡和纹理图案。

# -*- coding: utf-8 -*- """ 【简介】 绘图中QBrush 的例子 ,绘制九个不同样式的矩形。 """import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import *from PyQt5.QtCore import Qt class Drawing(QWidget): def __init__(self):super().__init__() self.initUI()def initUI(self): self.setGeometry(300, 300, 365, 280)self.setWindowTitle('画刷例子') self.show()def paintEvent(self, e): qp = QPainter()qp.begin(self)self.drawLines(qp)qp.end()def drawLines(self, qp): brush = QBrush(Qt.SolidPattern)qp.setBrush(brush)qp.drawRect(10, 15, 90, 60)brush = QBrush(Qt.Dense1Pattern)qp.setBrush(brush)qp.drawRect(130, 15, 90, 60)brush = QBrush(Qt.Dense2Pattern)qp.setBrush(brush)qp.drawRect(250, 15, 90, 60)brush = QBrush(Qt.Dense3Pattern)qp.setBrush(brush)qp.drawRect(10, 105, 90, 60)brush = QBrush(Qt.DiagCrossPattern)qp.setBrush(brush)qp.drawRect(10, 105, 90, 60)brush = QBrush(Qt.Dense5Pattern)qp.setBrush(brush)qp.drawRect(130, 105, 90, 60)brush = QBrush(Qt.Dense6Pattern)qp.setBrush(brush)qp.drawRect(250, 105, 90, 60)brush = QBrush(Qt.HorPattern)qp.setBrush(brush)qp.drawRect(10, 195, 90, 60)brush = QBrush(Qt.VerPattern)qp.setBrush(brush)qp.drawRect(130, 195, 90, 60)brush = QBrush(Qt.BDiagPattern)qp.setBrush(brush)qp.drawRect(250, 195, 90, 60) if __name__ == '__main__':app = QApplication(sys.argv)demo = Drawing()demo.show()sys.exit(app.exec_()) 4、QPixmap

QPixmap 类用于绘图设备的图像显示,可作为一个 QPaintDevice 对象,也可以加载到一个控件中。
QPixmap 可以读取的图像文件类型有:BMP、GIF、JPG、JPEG、PNG、PBM、PGM、PPM、XBM、XPM 等。
QPixmap 类的常用方法如下:

方法描述copy()从 QRect 对象复制到 QPixmap 对象fromIamge()将 QImage 对象转换为 QPixmap 对象grabWidget()从给定的窗口小控件创建一个像素图grabWindow()在窗口中创建数据的像素图load()加载图像文件作为 QPixmap 对象save()将 QPixmap 对象保存为文件toImage()将 QPixmap 对象转换为 QImage 对象# -*- coding: utf-8 -*-''' 【简介】PyQt5中 QPixmap 例子 '''import sysfrom PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *if __name__ == '__main__':app = QApplication(sys.argv)win = QWidget()lab1 = QLabel()lab1.setPixmap(QPixmap("D:机器学习学习草稿duoren.jpg"))vbox=QVBoxLayout()vbox.addWidget(lab1)win.setLayout(vbox)win.setWindowTitle("QPixmap 例子")win.show()sys.exit(app.exec_())

这篇博文内容来源于书籍《pyqt5快速开发与实战》
我只是记录下有用的信息,方便以后复习查找。
不然学的东西又忘啦。

电气专业的计算机萌新,写博文不容易。如果你觉得本文对你有用,请点个赞支持下,谢谢。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。