pyqtgraph关于点击不同子图触发不同的槽函数

救命,查了好几个小时的资料都没有,使用chatGPT也是给的错代码。最后去看了官方文档:MouseClickEvent — pyqtgraph 0.13.1 documentation才解决。最关键的一点是,不能直接使用Pos(),使用event.scenePos(),直接看代码吧:

from PyQt5.QtWidgets import QApplication
from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg
import sys

# 创建应用程序和主窗口
app = QApplication([])
win = pg.GraphicsLayoutWidget(show=True, title="GraphicsLayoutWidget Example")

# 创建子图
p1 = win.addPlot(title="Plot 1")
p2 = win.addPlot(title="Plot 2")

# 定义槽函数


def slot_function_2(event):
    pos = event.scenePos()
    print(pos)
    if p1.sceneBoundingRect().contains(pos):
        print("Slot function 1 called")
    if p2.sceneBoundingRect().contains(pos):
        print("Slot function 2 called")
        # 在这里实现对子图的操作

# 连接槽函数到子图
p1.scene().sigMouseClicked.connect(slot_function_2)
p2.scene().sigMouseClicked.connect(slot_function_2)

# 运行应用程序
if __name__ == '__main__':
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
        QApplication.instance().exec_()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值