PyQt:实现自定义绘制pyqtgraph折线图中的symbol图标

文章介绍了如何在PyQt5环境中使用QPainterPath创建自定义symbol,如一个小货车图形,并在坐标轴上进行显示。主要内容涉及官方文档、坐标轴设置和自定义图形的绘制方法。
摘要由CSDN通过智能技术生成

一、写在前面

1.关于symbol的官方文档说明:symbol

2.我自己绘制的自定义symbol符号,如下图:一个在坐标轴上移动的“小货车”

在这里插入图片描述

2.默认可以选择的有以下多种symbol符号

在这里插入图片描述

但最后一项也说明了:支持QPainterPath绘制的自定义符号形状。更为详细的,在此处进行了更为详细的说明。
在这里插入图片描述

即,使用QPainterPath绘制自定义的图形需要满足两个条件:①绘制起点需要是坐标原点(0,0);②绘制完成的整体图形需要满足长度宽度都是1

二、主要代码参考

from PyQt5.QtGui import QColor
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import pyqtgraph as pg

 def init_position(self):
        '''初始化小车位置显示坐标轴'''
        # 设置坐标系的背景颜色
        self.widget.setBackground('w')

        self.p = self.widget.addPlot()
        # 禁止拖动坐标系
        self.p.setMouseEnabled(x=False, y=False)
        self.p.setMenuEnabled(False)
        #隐藏左下角的“A”
        self.p.hideButtons()
        # 初始化坐标轴范围
        self.p.setXRange(0, 2)
        self.p.setYRange(0, 5)
        # 隐藏纵坐标轴
        self.p.showAxis('left', show=False)
        #获取横坐标轴
        self.axis = self.p.getAxis('bottom')
        # 设置坐标系的背景颜色
        self.widget.setBackground((6, 89, 127))
        #设置坐标轴颜色
        self.axis.setPen(color=(0,255,127))
        #绘制颜色设置
        pen_color = pg.mkPen(color=(0,255,127))
        Brush_color = pg.mkBrush(color=(0,255,127))
        #调用自定义symbol符号
        car_symbol = self.create_car_symbol_back()
         #绘制信息
        self.p.plot([2.0], [5],
        pen=pg.mkPen(color=(255,255,0),width=2),
        symbolBrush=Brush_color,
        symbolPen=pen_color, symbol=car_symbol,symbolSize=40)
     
 # 创建一个QPainterPath对象来定义自定义的形状
    def create_car_symbol_back(self):
        '''绘制小货车'''
        path = QtGui.QPainterPath()
        path.moveTo(0, 0)
        path.addRect(0, 0, 0.2, 0.1)
        path.addRect(0,0.1,0.5,0.15)
        path.addEllipse(0.3,0.29,0.15,0.15)
        path.addEllipse(0.05, 0.29, 0.15, 0.15)
        return path
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饿不坏的企鹅

共享单车该续费了555

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值