一、小引
QPen是基本的绘画对象,能用来画直线、曲线、矩形框、椭圆、多边形和其他形状。
- 在本例中我们利用QPen来绘制不同的线条
二、源码
"""
# -*- coding: utf-8 -*-
# @Time : 2023/2/25 10:49
# @Author : 王摇摆
# @FileName: 4.py
# @Software: PyCharm
# @Blog :https://blog.csdn.net/weixin_44943389?type=blog
"""
import sys
from PyQt5 import QtGui
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPainter, QPen
from PyQt5.QtWidgets import QWidget, QApplication
class Example(QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.setGeometry(450, 300, 280, 270)
self.setWindowTitle('Different Pens')
self.show()
# 在生成窗口的时候自动触发绘画事件
def paintEvent(self, event: QtGui.QPaintEvent) -> None:
qp = QPainter() # 构造画师
qp.begin(self)
# qp.drawLines() # 这么写很明显是错误的,应该用self来调用自定义的方法
self.drawLines(qp)
qp.end()
# 画师开始干活
def drawLines(self, qp):
# 1
pen = QPen(Qt.black, 2, Qt.SolidLine)
qp.setPen(pen)
qp.drawLine(20, 40, 250, 40)
# 2
pen.setStyle(Qt.DashLine)
qp.setPen(pen)
qp.drawLine(20, 80, 250, 80)
# 3
pen.setStyle(Qt.DashDotLine)
qp.setPen(pen)
qp.drawLine(20, 120, 250, 120)
# 4
pen.setStyle(Qt.DotLine)
qp.setPen(pen)
qp.drawLine(20, 160, 250, 160)
# 5
pen.setStyle(Qt.DashDotDotLine)
qp.setPen(pen)
qp.drawLine(20, 200, 250, 200)
# 6 自定义画笔样式完成绘图
pen.setStyle(Qt.CustomDashLine)
pen.setDashPattern([1, 4, 5, 4])
qp.setPen(pen)
qp.drawLine(20, 240, 250, 240)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
三、真正的学会都是从动手开始的
在本实例中虽然花了很多时间
- 但是通过琢磨代码
- 真正的学会了很多东西
- 尤其是debug这个必须会的调试大法