[python] ShowModal ve WxPythonu

Jakub Vojacek jakohv na seznam.cz
Pátek Srpen 31 19:17:50 CEST 2007


----- Original Message ----- 
From: "Petr Nesládek" <petr.nesladek na seznam.cz>
To: "Konference PyCZ" <python na py.cz>
Sent: Friday, August 31, 2007 6:19 PM
Subject: Re: [python] ShowModal ve WxPythonu




Taky s wx začínám, ale problém je púodle mě v tom, že
se neda za ShowModal ještě spustit výpočet - zastaví se na tom - grafické 
porstředí běží, ale daná metoda tam zůstane stát a to samé způsobí takhle 
postavená funkce výpočtu. řešení je podle mě ve více vláknech  -? a nebo 
jednoduchou úpravou  - coby "semafor", ketrý nedovolí podruhé spustit metodu 
pocitej :

Tj začátek metody __init__ a počítej by vypydaly takto :

class Okno:
    def __init__(self):
        self.okno=wx.Frame(None)
        button=wx.Button(self.okno,label="Spusť")
        button.Bind(wx.EVT_BUTTON, self.pocitej)
        self.okno.Show(1)
        #tady musí být zastavený na počátku
        self.vypocet=[False]

    def pocitej(self,akce):
        if self.vypocet[0] == True :
            return
        else:
            self.vypocet[0]=True
            self.cancel()
            compute(self.vypocet)
            self.znic_okno()


vše ostatní ponechám a chodí to -doufám dle představy, ale asi to úplně 
nějlepší cesta není, ale je poměrně jednoduchá a funkční


Petr

Jo, semafor mě taky napadl, ale do programu se to nehodí Ta ukázka je část 
celkem komplexního gui, kde je funkce podobná compute volaná z několika 
tlačítek, takže by se těch:
if self.vypocet[0]:return
dost nahromadilo.

Pokud nikoho jiného nic jiného nenapadne, tak to ale budu muset použít.



Další informace o konferenci Python