Programa con Hilos Threading

El dia de hoy veremos un programa similar al visto en el programa de la loteria presentado en entradas anteriores en este blog, este mostrara varios animales en pantalla, desplegando sus sonidos y nombres aleatoriamente.

Codigo:

from Tkinter import *
from PIL import Image,ImageTk
import os
import random
import sys
import pygame
import time
import threading

carpeta=os.path.dirname(__file__)
fotos=carpeta+"/Imagenes/"
Sonidos=carpeta+"/Sonidos/"

img=object
sonido=object
stop=object

def load():
    global fotos,img,label, label2,stop
    stop=0
    while stop==0:
        arreglo = ["Leon", "Gallo", "Jirafa", "Rana", "Panda", "Buho", "Elefante", "Tigre", "Lobo"]
        eleccion_aleatoria = str(arreglo.index(random.choice(arreglo)))

        figura = fotos + eleccion_aleatoria + ".png"
        imagen = Image.open(figura)
        imagen.thumbnail((500, 500), Image.ANTIALIAS)
        img = ImageTk.PhotoImage(imagen)
        label.config(image=img)
        label2.config(text=arreglo[int(eleccion_aleatoria)])
        # Para Reproducir sonido
        sonido = Sonidos + eleccion_aleatoria + ".mp3"  # obtengo la ruta del sonido correspondiente
        pygame.mixer.music.load(sonido)  # Abre el archivo
        pygame.mixer.music.play()  # Reproduce sonido
        time.sleep(2)
    print "Hilo terminado"


def stop():
    global stop
    print stop
    stop=1

def play():
    hilo=threading.Thread(target=load)
    hilo.start()

pygame.init()  # inicializa el modulo de sonido de pygame
root = Tk()
root.geometry("200x200")
label = Label(root)
label.pack()
label2 = Label(root, text="", font=("Arial", 12, "bold"))
label2.pack()
btn1=Button(root,text="Iniciar",command=play).pack(fill=X)
btn2=Button(root,text="Terminar", command=stop).pack(fill=X)
root.mainloop()

Salida:


Comentarios