[python] ShowModal ve WxPythonu
Jakub Vojacek
jakohv na seznam.cz
Čtvrtek Srpen 30 21:57:40 CEST 2007
Zdravím
Potřeboval bych pomoci najít ve Wx něco jako grab_set() v Tkinteru (nové okno je aktivní a na předchozí se nedá kliknout dokud se nové nezavře). Mohl bych použít ShowModal, ale to se mi zastaví celá aplikace.
Přikládám kód. Potřebuju, aby se nedali začít dva výpočty najednou (jinak dojde k vygenerování vyjímky):
# -*- coding: cp1250 -*-
import wx
def compute(seznam):
while seznam[0]:
wx.Yield()
print "probiha vypocet"
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)
self.vypocet=[True]
def pocitej(self,akce):
self.vypocet[0]=True
self.cancel()
compute(self.vypocet)
self.znic_okno()
def stop(self,akce):
self.vypocet[0]=False
def prerusit(self):
try:
self.okno2.Destroy()
except:pass
self.vypocet[0]=False
def cancel(self):
self.okno2=wx.Frame(self.okno,size=(150,100),style=wx.FRAME_NO_TASKBAR|wx.FRAME_FLOAT_ON_PARENT|wx.CAPTION)
self.okno2.SetBackgroundColour((236, 233, 216))
self.okno2.Centre()
button=wx.Button(self.okno2,label="Přerušit")
button.Bind(wx.EVT_BUTTON,lambda e:self.prerusit())
self.okno2.Show()
def znic_okno(self):
try:
self.okno2.Destroy()
except:
pass
ap = wx.App(0)
Okno()
ap.MainLoop()
Díky moc za pomoc!
Blujacker
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://www.py.cz/pipermail/python/attachments/20070830/fca4eb00/attachment.htm
Další informace o konferenci Python