【问题标题】:Restore zoom to default level after mouse interactions in pyqtgraph在pyqtgraph中进行鼠标交互后将缩放恢复到默认级别
【发布时间】:2021-07-11 13:18:32
【问题描述】:

有没有办法恢复pyqtgraph 绘图的默认缩放级别。我知道图中显示的小按钮(图的左下角)可以恢复默认缩放级别。我需要的是在发生特定事件时从代码中恢复它(放大或缩小后)。

我查看了pyqtgraph 文档,但找不到任何类似的功能。

这是最小可重现代码:

from PyQt5 import QtGui  
import pyqtgraph as pg
import numpy as np

app = QtGui.QApplication([])
w = QtGui.QWidget()
btn = QtGui.QPushButton('press me')
text = QtGui.QLineEdit('enter text')
listw = QtGui.QListWidget()
plot = pg.PlotWidget()

layout = QtGui.QGridLayout()
w.setLayout(layout)
layout.addWidget(btn, 0, 0) 
layout.addWidget(text, 1, 0) 
layout.addWidget(listw, 2, 0) 
layout.addWidget(plot, 0, 1, 3, 1) 

x = np.random.normal(size=1000)
y = np.random.normal(size=1000)
plot.plot(x, y, pen=(2,3), symbol='d')

w.show()

app.exec_()

【问题讨论】:

    标签: python pyqt pyqt5 pyqtgraph


    【解决方案1】:

    如果分析the source code,观察到当你指示的按钮被按下时,enableAutoRange()方法被调用,所以这是必须使用的方法:

    from pyqtgraph.Qt import QtCore, QtGui
    import pyqtgraph as pg
    import numpy as np
    
    if __name__ == "__main__":
    
        app = QtGui.QApplication([])
        w = QtGui.QWidget()
        btn = QtGui.QPushButton("press me")
        text = QtGui.QLineEdit("enter text")
        listw = QtGui.QListWidget()
        plot = pg.PlotWidget()
    
        btn.clicked.connect(lambda: plot.getPlotItem().enableAutoRange())
    
        layout = QtGui.QGridLayout()
        w.setLayout(layout)
        layout.addWidget(btn, 0, 0)
        layout.addWidget(text, 1, 0)
        layout.addWidget(listw, 2, 0)
        layout.addWidget(plot, 0, 1, 3, 1)
    
        x = np.random.normal(size=1000)
        y = np.random.normal(size=1000)
        plot.plot(x, y, pen=(2, 3), symbol="d")
    
        w.show()
    
        app.exec_()

    【讨论】:

      猜你喜欢
      • 2020-06-16
      • 1970-01-01
      • 2021-03-31
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 2017-11-24
      • 2014-03-28
      相关资源
      最近更新 更多