wxPython,wxformBuilder和matplotlib:将图形调整为面板大小

时间:2018-11-25 14:45:47

标签: python matplotlib wxpython wxformbuilder

希望您能够帮助我。 -我是python和gui编程的新手,所以请多多包涵。

我正在尝试使用wxformBuilder创建一个简单的GUI,用户可以在其中选择一个csv文件并将其绘制在另一个面板(right_panel)中。 下图显示了GUI和结构: GUI and Structure

我可以使用下面显示的代码在面板中绘制一些示例数据,但是在调整窗口大小时,我无法将数字缩放到面板上。

import wx
import matplotlib
matplotlib.use('WXAgg')
from matplotlib.figure import Figure
from matplotlib.backends.backend_wxagg import \
    FigureCanvasWxAgg as FigureCanvas, \
    NavigationToolbar2WxAgg as NavigationToolbar
import numpy as np
import gui2


class explorerFrame(gui2.mainFrame):
    def __init__(self,parent): 
         gui2.mainFrame.__init__(self,parent) 
         self.CreatePlot()     
         return

     def CreatePlot(self):
         self.figure = Figure()           
         self.axes = self.figure.add_subplot(111)
         self.axes.grid()
         x = np.arange(0, 6, .01)
         y = np.sin(x**2)*np.exp(-x)
         self.axes.plot(x, y) 
         self.canvas = FigureCanvas(self.right_panel, -1, self.figure)

         return

 app = wx.App(False)
 frame = explorerFrame(None)
 frame.Show(True)
 app.MainLoop()

下图说明了缩放问题: Example 1 Example 2

我尝试在面板内添加boxSizer,但是我不确定如何将画布放置在sizer中。任何帮助将不胜感激。

亲切的问候 卡巴斯尔

1 个答案:

答案 0 :(得分:0)

大小确定者当然可以胜任。 使用wxGlade,我提供了一些matplotlib示例。

这应该让您开始如何向面板添加上浆器:https://github.com/wxGlade/wxGlade/blob/master/examples/matplotlib/matplotlib_example.py