【Python 实战基础】Python 中 PyQt6 的 QPen 介绍

目录

一、实战场景

二、主要知识点

文件读写

基础语法

PyQt6

QPen

三、菜鸟实战


一、实战场景

实战场景: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)

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

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

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

菜鸟实战,持续学习!  

猜你喜欢

转载自blog.csdn.net/qq_39816613/article/details/127125839