Hallo allemaal,
Ik ben bezig met een gui in wxpython. Ik heb een simpele applicatie gemaakt met wat schuifjes, knoppen en checkboxes. Maar nu wil ik op een bepaald plaats in mijn Frame een grafiek hebben. Deze grafiek maak ik met matplotlib:
Dit is daarvan het resultaat:

Dit is mijn echte applicatie:
http://pastebin.com/Uix42n7p

En ik wil dit:

Mijn probleem is dus hoe ik dus de sizer op de juist plek in mijn applicatie krijg. Of ik kan natuurlijk ook de sizer afschaffen, maar dan moet ik wel de canvas op de juiste plek krijgen.
Ik heb al eindeloos gezocht op de site van wxpython, matplotlib, en in het boek wxpython in action. Zelfs in de voorbeelden die ik gevonden heb kon ik niet vinden wat ik zocht.
Ik ben bezig met een gui in wxpython. Ik heb een simpele applicatie gemaakt met wat schuifjes, knoppen en checkboxes. Maar nu wil ik op een bepaald plaats in mijn Frame een grafiek hebben. Deze grafiek maak ik met matplotlib:
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| from numpy import arange, sin, pi import matplotlib matplotlib.use('WXAgg') from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas from matplotlib.backends.backend_wx import NavigationToolbar2Wx from matplotlib.figure import Figure import wx class CanvasFrame(wx.Frame): def __init__(self,size): wx.Frame.__init__(self,None,-1, 'CanvasFrame',size=size) panel = wx.Panel(self,-1) self.SetBackgroundColour(wx.NamedColor("WHITE")) self.figure = Figure(figsize = (6,4)) self.axes = self.figure.add_subplot(111) t = arange(0.0,3.0,0.01) s = sin(2*pi*t) self.axes.plot(t,s) self.canvas = FigureCanvas(self, -1, self.figure) self.sizer = wx.BoxSizer() self.sizer.Add(self.canvas, 0) self.SetSizer(self.sizer) def OnPaint(self, event): self.canvas.draw() class App(wx.App): def OnInit(self): 'Create the main window and insert the custom frame' frame = CanvasFrame(size=(800,500)) frame.Show(True) return True app = App(0) app.MainLoop() |
Dit is daarvan het resultaat:

Dit is mijn echte applicatie:
http://pastebin.com/Uix42n7p

En ik wil dit:

Mijn probleem is dus hoe ik dus de sizer op de juist plek in mijn applicatie krijg. Of ik kan natuurlijk ook de sizer afschaffen, maar dan moet ik wel de canvas op de juiste plek krijgen.
Ik heb al eindeloos gezocht op de site van wxpython, matplotlib, en in het boek wxpython in action. Zelfs in de voorbeelden die ik gevonden heb kon ik niet vinden wat ik zocht.