python - 在pyqtgraph中鼠标交互后将缩放恢复到默认级别

标签 python pyqt pyqt5 pyqtgraph

有没有办法恢复 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_()

最佳答案

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_()

关于python - 在pyqtgraph中鼠标交互后将缩放恢复到默认级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60520613/

相关文章:

python - PyQt如何从布局中移除布局

python - QT 定时器不调用函数

python - 值更改后使用代理模型更改 QTableView 单元格的背景颜色

python - Qt 平台插件 'windows' - py2exe

python - 亚马逊 (AWS) API 网关 - 身份验证

python - 如何让pynput按下回车键,或其他一些按下回车的代码行

python - Github-API : How do I plot the number of commits to a repo?

python - 使用 Django 在 Google App Engine 上永久将 http 重定向到 https

python - 如何设置 QTableWidget 在实时数据输入期间始终滚动到底部

python - 调整大小时,paint 方法不会绘制整个小部件