PyQt5-绘制不同类型的直线

本文介绍如何使用PyQt5绘制不同样式的直线,包括实线、虚线、点画线等,并展示如何通过设置画笔样式来实现这些效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PyQt5-绘制不同类型的直线

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/6/17 20:01
# @Author : kevin
# @Site : 
# @File : 绘制不同类型的直线.py
# @Software: PyCharm
"""
绘制不同类型的直线




"""
import sys,math
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import Qt

class DrawMultiLine(QWidget):
    def __init__(self):
        super(DrawMultiLine, self).__init__()
        self.resize(400, 300)  # 设置主窗口尺寸
        self.setWindowTitle('设置Pen的样式')  # 设置主窗口标题



    def paintEvent(self, event):
        painter = QPainter()  # 创建对象
        painter.begin(self)  #

        pen = QPen(Qt.red, 3, Qt.SolidLine)  # 红色,宽度为3像素, 实线____________
        painter.setPen(pen)  # 设置画笔
        painter.drawLine(40, 40, 350, 40)  # 40, 40, 350, 40 在resize中,起始横坐标, 起始纵坐标,结束横坐标,结束纵坐标
        #  -----------------------下面两行可以没有,没有的话就不写字---------------------------------------------
        painter.setFont(QFont('SimSun', 15))  # 设置字体,字号
        painter.drawText(40, 20, 320, 20, 100, '这是实线')  #
        #  ------------------------------------------------------------------------------------------------------

        pen = QPen(Qt.black, 3, Qt.DashLine)  # 黑色,宽度为3像素,虚线——————
        painter.setPen(pen)  # 设置画笔
        painter.drawLine(40, 80, 350, 80)  # 40, 80, 350, 80 在resize中,起始横坐标, 起始纵坐标,结束横坐标,结束纵坐标
        #  -----------------------下面两行可以没有,没有的话就不写字---------------------------------------------
        painter.setFont(QFont('SimSun', 15))  # 设置字体,字号
        painter.drawText(40, 40, 320, 40, 100, '这是虚线')  #
        #  ------------------------------------------------------------------------------------------------------

        pen = QPen(Qt.green, 3, Qt.DashDotLine)  # 绿色,宽度为3像素,点画线—.—.—.
        painter.setPen(pen)  # 设置画笔
        painter.drawLine(40, 120, 350, 120)  # 40, 120, 350, 120 在resize中,起始横坐标, 起始纵坐标,结束横坐标,结束纵坐标
        #  -----------------------下面两行可以没有,没有的话就不写字---------------------------------------------
        painter.setFont(QFont('SimSun', 15))  # 设置字体,字号
        painter.drawText(40, 60, 320, 60, 100, '这是点画线')  #
        #  ------------------------------------------------------------------------------------------------------

        pen = QPen(Qt.blue, 3, Qt.DotLine)  # 蓝色,宽度为3像素,密集虚线 ......
        painter.setPen(pen)  # 设置画笔
        painter.drawLine(40, 160, 350, 160)  # 40, 160, 350, 160 在resize中,起始横坐标, 起始纵坐标,结束横坐标,结束纵坐标
        #  -----------------------下面两行可以没有,没有的话就不写字---------------------------------------------
        painter.setFont(QFont('SimSun', 15))  # 设置字体,字号
        painter.drawText(40, 80, 320, 80, 100, '这是密集虚线')  #
        #  ------------------------------------------------------------------------------------------------------

        pen = QPen(Qt.gray, 3, Qt.DashDotDotLine)  # 灰色,宽度为3像素,点点线 —..—..—
        painter.setPen(pen)  # 设置画笔
        painter.drawLine(40, 200, 350, 200)  # 40, 200, 350, 200 在resize中,起始横坐标, 起始纵坐标,结束横坐标,结束纵坐标
        #  -----------------------下面两行可以没有,没有的话就不写字---------------------------------------------
        painter.setFont(QFont('SimSun', 15))  # 设置字体,字号
        painter.drawText(40, 100, 320, 100, 100, '这是点点线')  #
        #  ------------------------------------------------------------------------------------------------------

        size = self.size()
        painter.end()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = DrawMultiLine()
    main.show()
    sys.exit(app.exec_())

示例图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值