[python] Thread a wxpython

2017-03-31 Tema obsahu vaclavik
Zdravím, mám takový problém, když vytvořím jakýkoliv obejekt wxpythonu
ve vláknu, tak po dokončení toho vlákna zmizí. Já bych potřeboval aby
zůstal. S vlákny teprve začínám. Jednoduchý příklad:

# -*- coding: utf-8 -*-
import wx
import thread
class Okno:
def __init__(self, parent):
self.okno=wx.MDIChildFrame(parent,title=u"Test",id=-1)
self.okno.Maximize()
thread.start_new_thread(self.funkce,())
def funkce(self):
self.promena=wx.StaticText(self.okno, label=u"Test")
if __name__ == "__main__":
okno = wx.App(0)
parent=wx.MDIParentFrame(None,size=wx.Size(500,500))
Okno(parent)
parent.Show()
okno.MainLoop()

Díky za pomoc
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Thread a wxpython

2008-09-02 Tema obsahu petr . messner
Ahoj. Mě ten tvůj příklad moc nefungoval, musel jsem přidat pár volání
metody Show. A i tak ten příklad fungoval jen někdy; sice neznám wx,
ale myslím, že stejně jako u ostatních GUI toolkitů, nelze jen tak
kombinovat volání z různých vláken, tedy přinejmenším bez nějaké
synchronizace, viz dokumentaci wx. Zajímavé je, že mě žádné objekty
nemizely, program spíš SIGSEGoval nebo se špatně vykreslily znaky.

(Snad nevadí, že odpovídám na dva měsíce starý dotaz; neznám místní
zvyklosti.)

P.M.


On 16 Čec, 14:34, [EMAIL PROTECTED] wrote:
 Zdravím, mám takový problém, když vytvořím jakýkoliv obejekt wxpythonu
 ve vláknu, tak po dokončení toho vlákna zmizí. Já bych potřeboval aby
 zůstal. S vlákny teprve začínám. Jednoduchý příklad:

 # -*- coding: utf-8 -*-
 import wx
 import thread
 class Okno:
     def __init__(self, parent):
         self.okno=wx.MDIChildFrame(parent,title=uTest,id=-1)
         self.okno.Maximize()
         thread.start_new_thread(self.funkce,())
     def funkce(self):
         self.promena=wx.StaticText(self.okno, label=uTest)
 if __name__ == __main__:
     okno = wx.App(0)
     parent=wx.MDIParentFrame(None,size=wx.Size(500,500))
     Okno(parent)
     parent.Show()
     okno.MainLoop()

 Díky za pomoc

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Thread a wxpython

2008-07-16 Tema obsahu superman
A je Vám známo, že všechny grafické knihovny jsou dělány na jedno 
vlákno? A že neumí korektně zacházet s tím, když jim ve více vláknech 
ovládáte grafické objekty? A pokud ano, tak se to musí speciálně 
ošetřovat, a není to úplně snadné?

Ono totiž udělat multithreadovou knihovnu nese značnou režii. Je to 
složité, a vzniká při tom řada problémů, které se ne vždy dají vyřešit. 
Protože principiálně nelze všechny problémy u multithreadových 
rozsáhlých knihoven vyřešit, a protože v případě grafické knihovny ani 
nemá moc smysl se příliš snažit o multithreading, bývají grafické 
knihovny tvrdě single task.

V případě, že se bez dalšího ošetření pokusíte použít knihovnu jako 
multi thread, pak se může stát cokoli, od zhroucení knihovny, přes 
neintegritu vnitřních datových struktur, až po různé obranné akce 
knihovny jako rušení objektů, či násilné uvolňování různých API.

S grafickými knihovnami se pracuje tak, že je řídí jedno vlákno, pokud 
nejsou vážné důvody dělat to jinak.

Miloslav Ponkrác


[EMAIL PROTECTED] napsal(a):
 Zdravím, mám takový problém, když vytvořím jakýkoliv obejekt wxpythonu
 ve vláknu, tak po dokončení toho vlákna zmizí. Já bych potřeboval aby
 zůstal. S vlákny teprve začínám. Jednoduchý příklad:

 # -*- coding: utf-8 -*-
 import wx
 import thread
 class Okno:
 def __init__(self, parent):
 self.okno=wx.MDIChildFrame(parent,title=uTest,id=-1)
 self.okno.Maximize()
 thread.start_new_thread(self.funkce,())
 def funkce(self):
 self.promena=wx.StaticText(self.okno, label=uTest)
 if __name__ == __main__:
 okno = wx.App(0)
 parent=wx.MDIParentFrame(None,size=wx.Size(500,500))
 Okno(parent)
 parent.Show()
 okno.MainLoop()

 Díky za pomoc
 ___
 Python mailing list
 Python@py.cz
 http://www.py.cz/mailman/listinfo/python


   

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python