[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