1

所以我有一个看起来像这样的wxform,例如在sizer 中有一些面板。我希望这些包含一个 matplotlib 图和一个工具栏。但是,在代码中,它们不尊重它们的大小。我试着摆弄了几个小时,但它们就是不起作用(工具栏按钮不起作用)

在此处输入图像描述

与 matplotlib 相关的代码如下。

我不在这里使用特定的面板,因为我不知道如何在代码中引用它们,甚至不知道如何管理窗口和工具栏的大小..

任何帮助将非常感激!

import matplotlib
matplotlib.use('WXAgg')
from matplotlib.figure import Figure
from matplotlib.backends.backend_wxagg import \
    FigureCanvasWxAgg as FigCanvas, \
    NavigationToolbar2WxAgg as NavigationToolbar2Wx

#import matplotlib.pyplot as plt 

import mainFrame


class MainFrameSub (mainFrame.MainFrame):
def __init__(self, parent, ip, product):
    mainFrame.MainFrame.__init__(self, parent)
    #self.createPlot()
    self.setStatusBar('Ready')
    self.ip = ip
    self.sizer = self.bSizer3

    self.figure = Figure()#figsize=(6, 4), dpi=100)

    self.ax = self.figure.add_subplot(111)
    self.ax.set_ylabel('Y-Label')
    self.ax.grid()
    self.ax.relim()
    self.ax.autoscale_view()
    self.ax.set_title("X-Label")

    self.canvas = FigCanvas(self, 0, self.figure)
    self.SetSizer(self.sizer)
    self.sizer.Add(self.canvas, 0, wx.EXPAND)
    self.toolbar = NavigationToolbar2Wx(self.canvas)
    self.toolbar.Realize()
    self.sizer.Add(self.toolbar, 0, wx.EXPAND)
    self.toolbar.update()

    self.ax.plot()
    self.ax2 = self.ax.twinx()
    self.lines= [None] * 1
    self.lines[0], = self.ax.plot([],[])
    self.canvas.draw() 

基本上,问题是:如何在窗口的“子结构”之一中安装 matplotlib + 工具栏?如果我有一个有 4 个视图的网格,并且我希望 matplotlib 适合其中一个,我该如何在 wx 中做到这一点?

4

0 回答 0