gtk.main() je co jsem prozatím ze zkoušení zjistil nekonečná smyčka a jakmile spustím gtk.main(), tak se už žádný další kód, který není vyvolán něcím v GUI nespustí, do ukončení gtk.main().
Proto to zkouším řešit přes podprocesy/vlákna. A kdybych to hlavního procesu dal monitorování roury, tak bych to zase musel mít ve while True, ne? Jde to v Pythonu řešit nějak elegantněji? Děkuji. Dne Tue, 30 Jun 2009 12:05:02 +0200 Petr Messner <[email protected]> napsal(a): > V půlce programu si to klidně forkneš a očekáváš, že z potomka si v > pohodě můžeš měnit proměnné v rodičkovském procesu, navíc z obou > procesů saháš do GTK? No fuj :-) GTK je myslím thread-safe (po nějaké > inicializaci, pokud si dobře vzpomínám), ale že by i > multiprocess-safe, to pochybuji :-) > > Doporučuji použít místo podprocesů vlákna nebo zařídit nějakou > meziprocesovou komunikaci - nejjednodušeji asi rouru/socketpair - tak > aby s GUI manipuloval jen jeden proces. > > PM > > 2009/6/30 Filip Bartmann <[email protected]>: > > V této části kódu: > > ---------------------------------------------------------------------------------- > > def __init__(self): > > self.mixer=alsa.Mixer(); > > if self.mixer.getmute()[0]==0: > > > > self.icon=gtk.status_icon_new_from_stock(gtk.STOCK_YES); > > else: > > > > self.icon=gtk.status_icon_new_from_stock(gtk.STOCK_NO); > > > > pid=os.fork(); > > if pid==0: > > while True: > > mixer=alsa.Mixer(); > > if mixer.getmute()[0]==0: > > print "UNMUTED"; > > > > self.icon.set_from_stock(gtk.STOCK_YES); > > elif mixer.getmute()[0]==1: > > print "MUTED"; > > > > self.icon.set_from_stock(gtk.STOCK_NO); > > time.sleep(1); > > > > self.icon.connect("popup-menu",self.show_controls); > > ---------------------------------------------------------------------------------- > > > > mám problém v přístupem k self.icon v potomkovi. Na CMDLině mi to > > sice správně hlási MUTED/UNMUTED ale ikona se nemění. Nevíte kde > > mám chybu? > > > > Za rady předem děkuji. > > > > Filip Bartmann > > _______________________________________________ > > Python mailing list > > [email protected] > > http://www.py.cz/mailman/listinfo/python > > > _______________________________________________ > Python mailing list > [email protected] > http://www.py.cz/mailman/listinfo/python _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
