前提・実現したいこと
wxPythonで、会計用GUIを作成しています。フレームの中に、パネルを二つ作り、一つ目のパネルに、買った商品名や金額をインプットするgrid を入れ、二つ目のパネルに、一つ目のパネルのgrid に入力された値を使って、折れ線グラフを入れたいです。
しかし、値をうまく取得できていないためか、二つ目のパネルにグラフが表示されません。何が問題なのか、どんなcodeならうまく出力されるのか教えてください。
該当のソースコード
import wx
import wx.grid
import matplotlib
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg
app = wx.App()
class MainFrame(wx.Frame):
def init(self, parent, title):
super().init(parent, title = title, size = (600,600))
self.InNotebook()
def InNotebook(self):
nb = wx.Notebook(self)
nb.AddPage(Panel1(nb),"Input Values")
nb.AddPage(Panel2(nb),"Total Expense")
self.Centre()
self.Show(True)
class Panel1(wx.Panel):
def init(self, parent):
super(Panel1, self).init(parent)
grid = wx.grid.Grid(self)
grid.CreateGrid(5, 2)
grid.SetColLabelValue(0, "dates") grid.SetColLabelValue(1, "Prices") grid.SetCellValue(0, 0, "20,21,23") grid.SetCellValue(0, 1, "453,363,567" ) grid.AutoSize()
class Panel2(wx.Panel):
def __init__(self, parent): super(Panel2, self).__init__(parent) def GetValue(self): value_dates = self.grid.GetCellValue(self, 0, 0) value_prices = self.grid.GetCellValue(self, 0, 1) def Graph(self): value_dates = self.grid.GetCellValue(self, 0, 0) value_prices = self.grid.GetCellValue(self, 0, 1) figure = matplotlib.figure.Figure(self) self.canvas = FigureCanvasWxAgg(self, wx.ID_ANY, figure) self.plot1 = figure.add_subplot(211, xlabel='dates', ylabel='expense') self.plot1.plot(value_dates, value_prices, '-', color=clr[num%len(clr)], label='[$]') self.plot1.legend(loc='upper right') self.canvas.draw()
MainFrame(None, "Total Expense")
app.MainLoop()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。