[EMAIL PROTECTED] wrote:
> Zdravím všechny, chtěl bych Vás požádat o pomoc se zřejmě začátečnickým 
> problémem, taky jsem začátečník :-)
> Situace(zjednodušeno): po spuštění programu se vytvoří frame1(wx.Frame) a 
> načte data ze souboru. Po stisku tlačítka se otevře nový frame2(wx.Frame) ve 
> kterém potřebuji tato data používat a modifikovat a po uzavření frame2 opět 
> již modifikovaná data používat ve frame1. Mohli byste mi prosím poradit, jak 
> si data mezi framy předávat? Napadá mě ve framu2 modifikovaná data uložit do 
> souboru a po jeho uzavření je ve framu1 opět načíst ze souboru, ale to se mi 
> jednak moc nelíbí a jednak stejně nevím, jak framu1 říct, aby po uzavření 
> frame2 načetl soubor. Používám Python 2.5, wxPython 2.7 na WinXP. Za pomoc 
> předem moc děkuju. Petr
>
>   
Ahoj,
nejprve bych chtel podotknout, ze wxPython-2.7 je development branch, 
takze doporucuji pouzivat verzi 2.6.
K tvemu problemu. Myslim si, ze je spousty zpusobu, jak toto provest a 
zalezi take trosku na tom, jak vse resis. Pravdepodobne mas ve fci 
obsluhujici udalost EVT_BUTTON vytvoreni frame2 a jeho zobrazeni. Pak 
pred tim, nez zavolas frame2.ShowModal() nebo jen frame2.Show() vytvor 
novou promennou ve frame2, ktera bude obsahovat data z frame1. Cele by 
to mohlo vypadat asi takhle:

    def OnButtonClick(self, evt):
        frame2 = Frame2(None, -1)
        frame2.data = self.data     # self je v tomto pripade instance
    of tridy Frame1 a data jsou data, ktere frame1 nacetl
        frame2.ShowModal()

Mozna jeste snazsi zpusob je ten, ze definujes frame1 jako parent pro 
frame2. Nasledne pak budes mit instanci tridy Frame1 v konstruktoru 
Frame2. V kodu pak asi takhle:

    def OnButtonClick(self, evt):
        frame2 = Frame2(self, -1)
        frame2.ShowModal()

    class Frame2(wx.Frame):
        def __init__(self, parent):
           wx.Frame.__init__(self, id = -1, parent = parent)
           self.data = parent.data     # nebo take self.parent = parent,
    pak jsou data v self.parent.data

Doufam, ze jsem trosku pomohl.
Leo            

-- 
----
Leos Pol
SW Engineer
Radiante Corp.

If it can be imagined,
we can implement it

_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem