我正在使用wxPython创建一个图像查看器。我想单独查看多个图像,所以我写了下面的代码(部分)。在from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.figure import Figure
class CanvasPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.figs = []
self.axes = []
self.canvases = []
self.panelsizers = []
def draw(self, data):
"""data is 2D numpy array"""
fig = Figure()
self.figs.append(fig)
ax = fig.add_subplot(111)
ax.imshow(data, interpolation='none')
self.axes.append(ax)
canvas = FigureCanvas(self, wx.ID_ANY, fig)
self.canvases.append(canvas)
panelsizer = wx.BoxSizer()
panelsizer.Add(canvas, 1, wx.GROW)
self.panelsizers.append(panelsizer)
self.SetSizer(panelsizer)
除了一个小问题,这几乎是完美的。在
当我运行代码并打开一个图像时,窗口如下所示。在
这个窗口由三个部分组成wx.面板中间一个是画布面板。您可以看到,CanvasPanel的大小有点小,即使比例=1和样式=wx.成长. 此外,当我通过拖动窗口的一角来调整窗口大小时,它看起来如下所示。在
画布面板的大小更改正确!为什么?如何在不调整大小的情况下修改代码以适应查看器中的画布面板。在