0

希望你能帮助我解决这个问题。- 我是python和gui编程的新手,所以请多多包涵。

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

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

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()

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

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

亲切的问候卡斯帕

4

1 回答 1

0

Sizer 当然可以完成这项工作。在 wxGlade 中,我包含了一些 matplotlib 示例。

这应该让您开始了解如何在面板中添加一个sizer:https ://github.com/wxGlade/wxGlade/blob/master/examples/matplotlib/matplotlib_example.py

于 2018-12-03T18:10:36.930 回答