赞
踩
import sys,math from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import Qt class DrawPoints(QWidget): def __init__(self): super(DrawPoints,self).__init__() self.resize(300,300) self.setWindowTitle('在窗口上用像素点绘制2个周期的正弦曲线') def paintEvent(self, event): painter = QPainter() painter.begin(self) painter.setPen(Qt.blue) size = self.size() for i in range(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 painter.drawPoint(x,y) painter.end() if __name__ == '__main__': app = QApplication(sys.argv) main = DrawPoints() main.show() sys.exit(app.exec_())
import sys from PyQt5.QtWidgets import QApplication,QWidget from PyQt5.QtGui import QPainter,QColor,QFont from PyQt5.QtCore import Qt class DrawText(QWidget): def __init__(self): super(DrawText,self).__init__() self.setWindowTitle('在窗口上绘制文本') self.resize(300,200) self.text = "Python从菜鸟到高手" def paintEvent(self, event): painter = QPainter(self) painter.begin(self) painter.setPen(QColor(150,43,5)) painter.setFont(QFont('SimSun',25)) painter.drawText(event.rect(),Qt.AlignCenter,self.text) painter.end() if __name__ == '__main__': app = QApplication(sys.argv) main = DrawText() main.show() sys.exit(app.exec_())
import sys,math from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import Qt class DrawMultiLine(QWidget): def __init__(self): super(DrawMultiLine,self).__init__() self.resize(300,300) self.setWindowTitle('设置Pen的样式') def paintEvent(self, event): painter = QPainter() painter.begin(self) pen = QPen(Qt.red,3,Qt.SolidLine) painter.setPen(pen) painter.drawLine(20,40,250,40) pen.setStyle(Qt.DashLine) painter.setPen(pen) painter.drawLine(20, 80, 250, 80) pen.setStyle(Qt.DashDotDotLine) painter.setPen(pen) painter.drawLine(20, 120, 250, 120) pen.setStyle(Qt.DotLine) painter.setPen(pen) painter.drawLine(20, 160, 250, 160) pen.setStyle(Qt.DashDotDotLine) painter.setPen(pen) painter.drawLine(20, 200, 250, 200) pen.setStyle(Qt.CustomDashLine) pen.setDashPattern([1,10,5,8]) painter.setPen(pen) painter.drawLine(20, 240, 250, 240) painter.end() if __name__ == '__main__': app = QApplication(sys.argv) main = DrawMultiLine() main.show() sys.exit(app.exec_())
import sys,math from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * class DrawAll(QWidget): def __init__(self): super(DrawAll,self).__init__() self.resize(300,600) self.setWindowTitle('绘制各种图形') def paintEvent(self, event): qp = QPainter() qp.begin(self) qp.setPen(Qt.blue) # 绘制弧 rect = QRect(0,10,100,100) # alen: 1个alen等于1/16度 45 * 16 qp.drawArc(rect,0, 50 * 16) # 通过弧绘制圆 qp.setPen(Qt.red) qp.drawArc(120,10,100,100,0, 360 * 16) # 绘制带弦的弧 qp.drawChord(10,120,100,100,12,130*16) # 绘制扇形 qp.drawPie(10,240,100,100,12,130*16) # 椭圆 qp.drawEllipse(120,120,150,100) # 绘制5边形 point1 = QPoint(140,380) point2 = QPoint(270,420) point3 = QPoint(290,512) point4 = QPoint(290,588) point5 = QPoint(200,533) polygon = QPolygon([point1,point2,point3,point4,point5]) qp.drawPolygon(polygon) # 绘制图像 image = QImage('./images/book.png') rect = QRect(10, 400, image.width()/3, image.height()/3) qp.drawImage(rect,image) qp.end() if __name__ == '__main__': app = QApplication(sys.argv) main = DrawAll() main.show() sys.exit(app.exec_())
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。