[python] gui,vlakna

rainbof na gmail.com rainbof na gmail.com
Úterý Prosinec 4 19:59:13 CET 2012


Hledal bych metodu process

odeslano z blackberry 9900 (iphone sucks)

-----Original Message-----
From: vepro <p.zlamal na gmail.com>
Sender: "Python" <python-bounces na py.cz>Date: Mon, 03 Dec 2012 13:15:28 
To: python na py.cz >> Konference PyCZ<python na py.cz>
Reply-To: Konference PyCZ <python na py.cz>
Subject: [python] gui,vlakna

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
_______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python


Další informace o konferenci Python