Re: [Python-es] Hilos y aplicación gráfica

Eduardo Matus ematus en gmail.com
Lun Jun 15 20:01:17 CEST 2009


Esta bien lo que hace tu programa, el comando system solo ejecuta comandos
de sistema, tu no tienes el control del proceso que estas queriendo
ejecutar, por eso cuando ejecutas gedit a traves de tu programa solo lo
estas inicializando, pero no tienes ningun tipo de control sobre el. si
quieres tener control sobre el proceso tienes que ocupar subprocess o popen.

2009/6/15 Macrux <kmacrux en gmail.com>

> David García escribió:
>
>  Macrux escribió:
>>
>>
>>> Hola, estoy aprendiendo python. Estoy buscando como crear una aplicación
>>> gráfica para crear un pequeño applet que tenga los botones con nombres de
>>> programas, por ejemplo de amarok, mplayer, konsole, y asi cada vez que yo
>>> le
>>> de click en un boton se cree un hilo de ejecución y se abra el programa
>>> descrito por el nombre del botón. Alguna idea?
>>>
>>>
>>
>> Si te entendí bien no te hacen falta hilos. Sino lanzar procesos
>> independientes
>> del tuyo. En este módulo:
>>
>> http://docs.python.org/library/subprocess.html#module-subprocess
>>
>> tienes un arsenal de herramientas para lo que te propones. La idea básica
>> es que
>> desde tu proceso vas a lanzar otros procesos (y no crear hilos).
>>
>> Además los toolkits como QT y wxWidgets también tienen sus propias clases
>> para
>> este tipo de llamadas.
>>
>>
>>
>>
>>> Desde ya, muchas gracias.
>>>
>>> Macrux.
>>>
>>> PD: para crear la interfaz, estaba pensando en QT Designer, o QTCreator.
>>> Lo
>>> que no se es como implementar los hilos :(
>>> _______________________________________________
>>> Lista de correo Python-es http://listas.aditel.org/listinfo/python-es
>>> FAQ: http://listas.aditel.org/faqpyes
>>>
>>>
>>>
>>
>> _______________________________________________
>> Lista de correo Python-es http://listas.aditel.org/listinfo/python-es
>> FAQ: http://listas.aditel.org/faqpyes
>>
>>
>>
> Hola, mira lo que sucede es que estoy haciendo un ejercicio que pide que la
> implementacion sea con hilos. En estos momentos tengo este problema;
> tengo esta clase:
>
> class Ejecutar(threading.Thread):
>
>  def __init__(self, id, cmd) :
>   threading.Thread.__init__(self)
>   self.cmd = cmd
>   self.id = id
>     def run(self):
>     system(self.cmd)
>
> Luego instancio un objeto de ella
>
>   programa = Ejecutar(1,"gedit")
>
> y luego lo empiezo la ejecucion asi:
>     programa.start()
>
> En efecto, el programa gedit inicia, pero cuando lo cierro e intentengo
> volverlo a ejecutar, lanza una excepcion diciendo que el hilo ya esta
> corriendo. Es decir, el hilo
> permanece abierto, aunque yo cierre el programa que se lanzo.
>
> Alguno de ustedes sabe como podria saber si el programa que ejecuto desde
> la consola es terminado, y basandome en ello terminar el hilo, de hecho,
> como puedo
> terminar un hilo?
>
> Gracias a todos, un saludo. Macrux
>
> _______________________________________________
> Lista de correo Python-es http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es