[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