在 pyqtgraph 中进行鼠标交互后将缩放恢复为默认级别
Restore zoom to default level after mouse interactions in 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 is analyzed, it is observed that when the button you indicate is pressed, the 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: <b>plot.getPlotItem().enableAutoRange()</b>)
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_()
有没有办法恢复 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 is analyzed, it is observed that when the button you indicate is pressed, the 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: <b>plot.getPlotItem().enableAutoRange()</b>)
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_()