wxPython, wxformBuilder и matplotlib: изменение размера рисунка на панели - PullRequest
0 голосов
/ 25 ноября 2018

Надеюсь, вы сможете мне помочь с этим.- Я новичок в программировании на Python и GUI, поэтому, пожалуйста, потерпите меня.

Я пытаюсь создать простой графический интерфейс, используя wxformBuilder, где пользователь может выбрать CSV-файл и вывести его на другую панель (right_panel).Графический интерфейс и структуру можно увидеть на следующем изображении: Графический интерфейс и структура

Я могу нанести некоторые образцы данных на панель, используя код, показанный ниже, но не могу получитьцифра для масштабирования до панели при изменении размера окна.

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.Любая помощь будет принята с благодарностью.

С уважением, Каспер

1 Ответ

0 голосов
/ 03 декабря 2018

Sizers, безусловно, могут сделать эту работу.В wxGlade я включил несколько примеров matplotlib.

Этот пример поможет вам начать работу по добавлению sizer на панель: https://github.com/wxGlade/wxGlade/blob/master/examples/matplotlib/matplotlib_example.py

...