【发布时间】:2021-10-15 15:47:22
【问题描述】:
我正在尝试添加GraphicsLayoutWidget 和LinearRegionItem,这两个比例是4:1 或m:n,但我在pygtgraph 中没有找到任何布局。所以我尝试如下代码,但不幸的是它不起作用并抛出回溯错误信息。
代码
import pyqtgraph as pg
import numpy as np
from PyQt5.QtWidgets import *
class Chart(pg.GraphicsLayoutWidget):
def __init__(self):
super().__init__()
self.data = np.linspace(0, 2*np.pi, 100)
self.data = np.sin(self.data)
self.p = self.addPlot(y=self.data)
class LR(pg.GraphicsLayoutWidget):
def __init__(self, target):
super().__init__()
self.p = self.addPlot() # type:pg.PlotItem
self.target = target # type: pg.PlotItem
rg = (target.data[0], target.data[-1])
self.p.setXRange(rg[0], rg[1], padding=0)
self.lr = pg.LinearRegionItem([rg[0], rg[1]])
self.lr.sigRegionChanged.connect(self.onLRChanged)
self.p.addItem(self.lr)
def onLRChanged(self):
print(self.target, self.lr.getRegion())
self.target.setXRange(*self.lr.getRegion())
class Win(QWidget):
def __init__(self):
super().__init__()
lay = QVBoxLayout()
self.chart = Chart()
self.lr = LR(self.chart)
lay.addWidget(self.chart)
lay.addWidget(self.lr)
lay.setStretch(0, 4)
lay.setStretch(1, 1)
self.setLayout(lay)
app = QApplication([])
win = Win()
win.show()
app.exec()
图片
错误
当用户在底部图形(绘图)的两侧拖动LinearRegionItem 线时,将显示回溯信息
环境
Python 3.8.10 (tags/v3.8.10:3d8993a, May 3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)] on win32
名称:pyqtgraph 版本:0.12.2
名称:numpy 版本:1.20.3
名称:PyQt5 版本:5.15.4
【问题讨论】:
-
我没有收到任何错误,你用的是什么版本的pyqtgraph?
-
@eyllanesc 在我的帖子中更新环境信息。
-
@eyllanesc 当用户在底部图形(绘图)的两侧拖动
LinearRegionItem线时,将显示回溯信息。 -
您的方法让我感到困惑,因为您说拉伸因素导致了错误,但事实并非如此。
标签: python-3.x pyqt5 pyqtgraph