gpt4 book ai didi

PyQtGraph:在平移图时防止 QScrollArea 滚动

转载 作者:行者123 更新时间:2023-12-05 07:19:27 27 4
gpt4 key购买 nike

在 PyQtGraph 中,您可以使用滚轮放大绘图。但是,当将 PyQtGraph 嵌入到 QScrollArea 中时,滚动会放大悬停的绘图并滚动 QScrollArea。

Example GIF

最少的可重现代码:

from PyQt5.QtWidgets import QApplication, QScrollArea, QMainWindow
import pyqtgraph as pg

app = QApplication([])
window = QMainWindow()
scroll = QScrollArea(window)
window.setCentralWidget(scroll)

frame = pg.GraphicsLayoutWidget()
plot = frame.addPlot().plot([1,2,3], [2,5,10])

scroll.setWidget(frame)
scroll.setWidgetResizable(True)

frame.setFixedHeight(600)
window.setFixedHeight(500)
window.show()
app.exec_()

我试着用谷歌搜索这个问题,我找到了一种停止平移并允许滚动的方法,但我想要相反的方法:防止滚动并允许平移。

在 PyQtGraph 中是否可以在悬停绘图时停止 QScrollArea 滚动?

最佳答案

解决方法是取消QScrollArea的wheelEvent:

from PyQt5.QtWidgets import QApplication, QScrollArea, QMainWindow
import pyqtgraph as pg


class ScrollArea(QScrollArea):
def wheelEvent(self, event):
pass


if __name__ == "__main__":
import sys

app = QApplication(sys.argv)
window = QMainWindow()
scroll = ScrollArea(window)
window.setCentralWidget(scroll)

frame = pg.GraphicsLayoutWidget()
plot = frame.addPlot().plot([1, 2, 3], [2, 5, 10])

scroll.setWidget(frame)
scroll.setWidgetResizable(True)

frame.setFixedHeight(600)
window.setFixedHeight(500)
window.show()
sys.exit(app.exec_())

关于PyQtGraph:在平移图时防止 QScrollArea 滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57793068/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com