我正在使用Python 3.5和PyQT5,并尝试创建一个包含图列表的窗口(使用matplotlib)。有足够的图形,窗口需要垂直滚动。在
使用QScrollArea它在两个方向上锁定图形大小,然后在窗口变小时滚动,这在我的用例中大多数时候都会导致右边的空白。只需使用一个基于普通QWidget的窗口,图形就可以拉伸以适应。在
理想情况下,我希望找到一种方法,让图形自然地水平伸展以填充空间,并保持垂直固定以启用滚动。在
下面是一些简化的代码,它呈现一个具有拉伸行为的窗口,而另一个窗口则具有QScrollArea对象,该对象在两个方向上都没有拉伸。在import sys
import matplotlib
matplotlib.use("Qt5Agg")
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
from numpy import arange, sin, pi
from PyQt5.QtWidgets import QWidget, QApplication, QScrollArea, QGridLayout, QSizePolicy
class SimpleGraph(FigureCanvas):
"""Canvas class, which acts as QWidget and renders a sin wave"""
def __init__(self, parent=None, width=5, height=2, dpi=100):