[python] wxSizers
Petr Hlávka
petrhlavka na gmail.com
Úterý Únor 20 21:02:04 CET 2007
Dobry den,
v zasade by to slo udelat treba takto
import wx
import wx.lib.plot as plot
class MyApp(wx.App):
def OnInit(self):
data = [(1,2), (2,3), (3,5), (4,6), (5,8), (6,8), (10,10)]
#
okno=wx.Frame(None)
radic=wx.BoxSizer(wx.VERTICAL)
#
client = plot.PlotCanvas(okno)
line = plot.PolyLine(data, legend='', colour='pink', width=1)
gc = plot.PlotGraphics([line], 'Line Graph', 'X Axis', 'Y Axis')
client.Draw(gc, xAxis= (0,15), yAxis= (0,15))
#
radic.Add(client,1,wx.EXPAND)
radic.Layout()
okno.SetSizer(radic)
okno.Show(True)
return True
if __name__ == "__main__":
app = MyApp()
app.MainLoop()
zmena je v inicializaci aplikace, trochu zmatek byl ve framech a
parametrech metody Add sizeru. Nejjednodussi je asi opravdu zacit demy
k wxpythonu nebo na http://wiki.wxpython.org - ziskat zakladni prehled
o tom, jak wxpython funuguje.
S pozdravem Petr Hlavka.
On 2/20/07, Jakub Vojáček <Jakohv na seznam.cz> wrote:
> > Od: Leos Pol <leos na radiante-corp.com>
> > Předmět: Re: [python] wxSizers
> > Datum: 20.2.2007 08:04:59
> >
> > Zda se mi to, nebo se snazite nacpat child frame (ram) do sizeru parenta
> > (self.okno)? Nemyslim si, ze tohle opravdu chcete.
> > Leo
> >
> > --
> > ----
> > Leos Pol
> > SW Engineer
> > Radiante Corp.
>
> Já jsem ve Wx úplný začátečník, věnuju se mu asi 5 dní;) Umím celkem kvalitně Tkinter, ale tam je geometry manager úplně jiný, takže sem trochu zmatený z Wx. Chci aby se mi otevřelo okno, vněm musí bejt sizer a v tom sizeru ram co se vratí z funkce ukazka. Stejný příklad je toto:
>
> import wx
> import wx.lib.plot as plot
> class Okno:
> def __init__(self,parent):
> self.cary=[]
> self.data = [(1,2), (2,3), (3,5), (4,6), (5,8), (6,8), (10,10)]
> self.strana="L"
> self.seznam_rovnic=[]
> self.jmena_rovnic=[]
> #
> self.okno=wx.Frame(None)
> self.radic=wx.BoxSizer(wx.VERTICAL)
> #
> obal = wx.Frame(self.okno)
> obal.SetBackgroundColour("#FCFCFE")
> client = plot.PlotCanvas(obal)
> line = plot.PolyLine(self.data, legend='', colour='pink', width=1)
> gc = plot.PlotGraphics([line], 'Line Graph', 'X Axis', 'Y Axis')
> client.Draw(gc, xAxis= (0,15000), yAxis= (0,15))
> #
> self.radic.Add(obal,1,0,wx.ALL)
> self.radic.Layout()
> self.okno.SetSizer(self.radic)
> self.okno.Show(True)
>
> if __name__ == "__main__":
> okno = wx.App(0)
> Okno(okno)
> okno.MainLoop()
>
> Taky mi to nefunguje tak jak má:(:(
>
> Blujacker
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
Další informace o konferenci Python