目录
一、实战场景
实战场景:Python 中 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空格等等。
菜鸟实战,持续学习!