本文共 1614 字,大约阅读时间需要 5 分钟。
QPen是一个基本的图形对象,用于绘制直线、曲线或者给轮廓画出矩形、椭圆形、多边形及其其他形状。
import sys,mathfrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class Win(QWidget): def __init__(self): super().__init__() self.setGeometry(300, 300,400, 300) self.setWindowTitle('QPen的使用') def paintEvent(self, event): painter = QPainter() painter.begin(self) #自定义绘制方法 self.drawLines(painter) painter.end() def drawLines(self,painter): pen = QPen(Qt.black,2,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.DashDotLine) 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, 4, 5, 4]) painter.setPen(pen) painter.drawLine(20, 240, 250, 240)if __name__ == "__main__": app = QApplication(sys.argv) form = Win() form.show() sys.exit(app.exec_())
代码分析: 在这个例子中,使用6种不同的线条样式绘制了6条线,其中前5条线使用的是预定义的线条样式,最后一条线使用自定义线条样式绘制。
pen = QPen(Qt.black,2,Qt.SolidLine)
创建一个QPen对象,将颜色设置为黑色,宽度设置为2像素,Qt.SolidLine是预定义的线条之一;Qt.CustomDashLine
创建线条样式,调用setDashPattern()
方法使用数字列表定义样式。数字列表的个数必须是偶数,奇数位代表一段横线,偶数位代表两端横线之间的空余距离。本例中数字列表的含义是:1像素宽度的横线,4像素宽度的空余距离,5像素宽度的横线,4像素的空余距离。运行效果如下:
转载地址:http://lvozi.baihongyu.com/