[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