lunes, 17 de junio de 2024

Crear Script en Python para mostrar una imagen y cerrar automaticamente



Antes de ejecutar el código, debes instalar las bibliotecas tkinter, PIL, schedule, time y datetime, abriendo la consola del sistema

-pip install Pillow

 -pip install schedule

En Windows:

tkinter generalmente se instala automáticamente con Python. Si no lo tienes, descarga e instala la última versión de Python desde python.org, que incluye tkinter.

time y datetime

Las bibliotecas time y datetime son bibliotecas estándar de Python y no requieren instalación adicional. Vienen incluidas con la instalación de Python.

Comprobación de la instalación

Para asegurarte de que todas las bibliotecas están instaladas correctamente, puedes crear un pequeño script de prueba para importarlas:

import tkinter as tk

from PIL import Image, ImageTk

import schedule

import time

import datetime


print("Todas las bibliotecas se han instalado correctamente.")


Instalación de Python y pip

Si aún no tienes Python o pip instalados, sigue estas instrucciones:


En Windows y macOS:

Descarga el instalador de Python desde python.org.

Ejecuta el instalador y sigue las instrucciones en pantalla.

Asegúrate de marcar la opción "Add Python to PATH" durante la instalación


SCRIPT PARA MOSTRAR IMAGEN EN PANTALLA CON UNA HORA DETERMINADA EN AM O PM Y CERRAR IMAGEN AUTOMATICAMENTE


import tkinter as tk

from PIL import Image, ImageTk

import schedule

import time

import datetime


def mostrar_imagen_sobrepuesta(ruta_imagen, tiempo_cierre=10000):  # tiempo_cierre en milisegundos

    print(f"Mostrando imagen: {ruta_imagen}")


    ventana = tk.Toplevel()

    ventana.overrideredirect(True)

    ventana.attributes("-topmost", True)

    ventana.geometry("+0+0")


    imagen = Image.open(ruta_imagen)

    imagen = imagen.resize((ventana.winfo_screenwidth(),

    ventana.winfo_screenheight()))                        

    imagen_tk = ImageTk.PhotoImage(imagen)


    etiqueta = tk.Label(ventana, image=imagen_tk)

    etiqueta.pack()


    ventana.update()  # Actualizar la ventana para mostrar la imagen


    def cerrar_ventana(event=None):

        ventana.destroy()


    etiqueta.bind("<Button-1>", cerrar_ventana)


    # Cerrar automáticamente la ventana después de 'tiempo_cierre' milisegundos

    ventana.after(tiempo_cierre, cerrar_ventana)


    ventana.mainloop()  # Iniciar el bucle principal de la ventana


def programar_tarea_mostrar_imagen(ruta_imagen, hora_str, tiempo_cierre=10000):

# Convertir la hora en formato de 12 horas con A.M./P.M. a formato de 12 horas

    hora = datetime.datetime.strptime(hora_str, "%I:%M %p").time()

    hora_str_format = hora.strftime("%H:%M")

    schedule.every().day.at(hora_str_format).do(mostrar_imagen_sobrepuesta, ruta_imagen, tiempo_cierre)


# Programar la tarea para mostrar la imagen

ruta_imagen = "E:/python/salud.jpg"  # Ruta de la imagen

hora_str = "10:58 AM"  # # Hora en formato HH:MM AM/PM

tiempo_cierre = 10000  # Tiempo en milisegundos para cerrar la imagen automáticamente (por ejemplo, 10 segundos)


programar_tarea_mostrar_imagen(ruta_imagen, hora_str, tiempo_cierre)



while True:

    schedule.run_pending()

    time.sleep(1)


0 comentarios:

Publicar un comentario