一、实战场景

Python 中 PyQt6 的 QPen 介绍

二、主要知识点

文件读写

基础语法

PyQt6

QPen


三、菜鸟实战

马上安排!

QPen 是一个基本图形对象,可以绘制线条,曲线和矩形,椭圆,多边形等形状的轮廓。

from PyQt6.QtWidgets import QWidget, QApplication
from PyQt6.QtGui import QPainter, QPen
from PyQt6.QtCore import Qt
import sys

class Example(QWidget):

def __init__(self):
super().__init__()

self.initUI()

def initUI(self):

self.setGeometry(300, 300, 280, 270)
self.setWindowTitle('Pen styles')
self.show()

def paintEvent(self, e):

qp = QPainter()
qp.begin(self)
self.drawLines(qp)
qp.end()

def drawLines(self, qp):

pen = QPen(Qt.GlobalColor.black, 2, Qt.PenStyle.SolidLine)

qp.setPen(pen)
qp.drawLine(20, 40, 250, 40)

pen.setStyle(Qt.PenStyle.DashLine)
qp.setPen(pen)
qp.drawLine(20, 80, 250, 80)

pen.setStyle(Qt.PenStyle.DashDotLine)
qp.setPen(pen)
qp.drawLine(20, 120, 250, 120)

pen.setStyle(Qt.PenStyle.DotLine)
qp.setPen(pen)
qp.drawLine(20, 160, 250, 160)

pen.setStyle(Qt.PenStyle.DashDotDotLine)
qp.setPen(pen)
qp.drawLine(20, 200, 250, 200)

pen.setStyle(Qt.PenStyle.CustomDashLine)
pen.setDashPattern([1, 4, 5, 4])
qp.setPen(pen)
qp.drawLine(20, 240, 250, 240)

def main():
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec())

if __name__ == '__main__':
main()

示例中,我们画了6条线。线条是用六种不同的笔触风格样式的。有五种预定义的笔触。我们也可以创建自定义笔触样式。最后一条线是使用自定义笔触风格样式的。

pen = QPen(Qt.GlobalColor.black, 2, Qt.PenStyle.SolidLine)
pen = QPen(Qt.GlobalColor.black, 2, Qt.PenStyle.SolidLine)

这里创建了一个 ​​QPen​​​ 对象,颜色是黑色,宽度2像素,这样就能区别不同的笔触。​​Qt.SolidLine​​ 是一个预定义的笔触。

pen.setStyle(Qt.PenStyle.CustomDashLine) pen.setDashPattern([1, 4, 5, 4]) qp.setPen(pen)
pen.setStyle(Qt.PenStyle.CustomDashLine) pen.setDashPattern([1, 4, 5, 4]) qp.setPen(pen)

这里我们自定义了一个笔触。样式设置为 ​​Qt.PenStyle。CustomDashLine​​​,用 ​​setDashPattern​​ 方法设置具体样式,参数一定是偶数个,奇数定义破折号,偶数定义空格。数字越大,空格或破折号就越大。这里设置的是1px横线,4px空格,5px横线,4px空格等等。

菜鸟实战,持续学习!