[python] gui,vlakna

vepro p.zlamal na gmail.com
Pondělí Prosinec 3 13:15:28 CET 2012


ahoj,
Potreboval bych poradit s nasledujicim. Vytvarim aplikaci (python 2.7) s 
gui (qt4), ktera vycita data z pripojene kamery. Aplikaci resim pomoci 
vlaken a zkracene takto:
1] inicializuji gui
2] tlacitko na start vycitani > spusti se vycitaci vlakno z modulu 
threading odkazujici na fuknci self.streaming

self.alive_streaming=threading.Event()
self.thread_streaming=threading.Thread(target = self.streaming)
self.thread_streaming.start()

ktera v nekonecne cyklu:

def streaming(self):
                 while self.alive_streaming.isSet():
                     vycitani kamery


3] v gui mam tlacitko stop, ktere kdyz zmacknu vyvola:

self.alive_streaming.clear()


Vse koncepcne funguje ok, avsak po startu vycitani gui funguje zcela 
nepruzne a trva napr. 5 sec nez dojde k vykonani prikazu stop (reakce 
tlacitka na zmacknuti). Je potreba nejaky gui "update"? zkousel jsem 
pomoci signalu:

self.connect(self,QtCore.SIGNAL("clicked()"),self.update_streaming_gui)

ve vycitaci smycce pak:
self.emit(QtCore.SIGNAL("clicked()"))   #signal> update gui

volajici funkci:
def update_streaming_gui(self):
self.ui.streamingProgressBar.setValue(self.streamer_order)

Coz ma za nasledek update progressbaru, avsak tlacitka jsou nadale "mrtva".

Nejake rady, navrhy?
Diky



Petr


Další informace o konferenci Python