在PyQt5中,QScrollArea中的matplotlib的FigureCanvasQTAgg无法正常工作

时间:2019-05-21 15:08:25

标签: python qt matplotlib pyqt pyqt5

我正在使用PyQt5创建一个应用程序。

我想添加一个长图,所以我尝试将图添加到QScrollArea中。

我使用FigureCanvasQTAgg中的matplotlib编写了以下代码

from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QScrollArea
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('Qt5Agg')

if __name__ == '__main__':

    app = QApplication(sys.argv)
    widget = QWidget()
    widget.resize(400, 300)
    fig, ax = plt.subplots(1)
    fig.set_size_inches(30, 1)
    figure_canvas = FigureCanvas(fig)
    scroll = QScrollArea(widget)
    scroll.setWidget(figure_canvas)
    widget.show()

    sys.exit(app.exec_())

但是当我滚动它时,它不能正常工作。

当我向右滚动时,gif显示情况。

代码有什么建议吗?

我的python是python 3.6.0

我正在使用matplotlib 3.0.3PyQt5 5.12.2

我的计算机是MacBook Pro 15英寸2014年中,

并且操作系统是Mojave 10.14.3

1 个答案:

答案 0 :(得分:0)

您能否尝试更新您的matplotlib模块> 3.2.0rc1版本。 此版本包含对该问题https://github.com/matplotlib/matplotlib/issues/14160的更正。 我在计算机上对其进行了测试,并且效果很好。