App Grafica | Imagenes Aleatorias



import os #libreria para obtener rutas de direcciones
import random # Generar mumeros aleatorios
import threading #Libreria Para manejar hilos
from Tkinter import *#GUI,Label,botones,menu,entry,Tk,frame
from PIL import Image, ImageTk#Tratar imagenes, PNG
import time #Para tiempos o espera o esperar o wait segundos
import pygame # Para juedos 2D y 3D

"""Variables globales"""
imagen=0
stop=0
dir = os.path.dirname("/home/alberto/Documentos/Proyectos Python/Aleatorio/")
Ccartas=dir+"/png/" #establece la ruta hacia las imagenes de cartas
Csonido=dir+"/mp3/" #establece la ruta hacia los sonidos
play=1
"""--------------------------------------------------------"""

def setimagen(nombre,x,y): #carga la imagen
    global imagen #Declaro el uso de una variable global
    img = Image.open(nombre) #cargo la imagen mandada como parametro
    img.thumbnail((x, y), Image.ANTIALIAS) #establezco sus dimensiones y la propiedad antialiasado
    imagen = ImageTk.PhotoImage(img) #la convierto a un formato soportado por los widgets de tkinter
    return imagen #retorno el objeto con la imagen

def play():
    global stop,play,TBoton #Declaro el uso de las variables stop y play
    if play==1:
        TBoton.set("Pausar")
        t=threading.Thread(target=hilo)
        t.start()
        stop=0 #El hilo continua con normalidad
        play=0 #La proxima vez que se pulse el boton debera entrar en el else
    else:
        TBoton.set("Jugar")
        play=1 #La proxima vez que se pulse el boton debera entrar en el if
        stop=1 #Se detiene el hilo

def reproducirsonido(nombre):
    pygame.mixer.music.load(nombre)
    pygame.mixer.music.play()


def hilo():
    global tiempo, cartas, Limagen,stop,Tetiqueta,spin
    cartas = ["Gato", "Perro", "Casa", "Lapiz", "Gusano", "3D", "Flor", "Carro"]

    while True:
        nombre=str(cartas.index(random.choice(cartas))+1)
        carta = Ccartas + nombre + ".png"
        Limagen.config(image=setimagen(carta,400,400))
        Tetiqueta.set(cartas[int(nombre)-1])
        sonido=Csonido+nombre+".mp3"
        reproducirsonido(sonido)
        time.sleep(float(spin.get()))
        if stop==1:
            break


ventana=Tk()#Creamos una ventana tipo Tk()
ventana.title("Imagenes Aleatorias")
ventana.geometry("700x700")
#ventana.config(bg="gray")#con config y Bg es al fondo del color de la ventana
filename = PhotoImage(file = "/home/alberto/Documentos/LV2.png")
background_label = Label(ventana, image=filename)
background_label.place(x=-610, y=-580)#, relwidth=1, relheight=1)
#ventana=Frame(ventana,width=700,height=700)#Poner un frame arriba de la ventana o Tk()
#ventana.pack()

Etitulo=Label(ventana,text="Imagenes Random",font=("Arial",40,"bold"),fg='white',bg='red').place(x=120,y=20)

Etiempo=Label(ventana,text="Tiempo Entre Imagenes: ",font=("Arial",12,"bold"),fg='white',bg='red')
Etiempo.place(x=100,y=100)

spin=Spinbox(ventana,values=[2,3,4,5,6,7,8,9,10,11,12],font=("Arial",12,"bold"))
spin.place(x=295,y=101)

Limagen=Label(ventana)
Limagen.place(x=250,y=180)

TBoton=StringVar()
TBoton.set("Jugar")
Bplay=Button(ventana,textvariable=TBoton,command=play)
Bplay.place(x=500,y=98)

Tetiqueta=StringVar()
Enombre=Label(ventana,textvariable=Tetiqueta,font=("Arial",40,"bold"),fg='white',bg='red')
Enombre.place(x=250,y=500)
pygame.init()
ventana.mainloop()