Proyecto
This commit is contained in:
parent
27d83cc9ad
commit
7ca109af88
63
app/main.py
63
app/main.py
|
@ -4,50 +4,55 @@ import datetime
|
|||
from tkinter import Menu, ttk
|
||||
|
||||
# Importación de widgets personalizados
|
||||
from hilos.ChatWidget import ChatWidget
|
||||
from hilos.MusicPlayer import MusicPlayer
|
||||
from hilos.WeatherWidget import WeatherWidget
|
||||
from hilos.SystemMonitor import SystemMonitor
|
||||
from hilos.ApplicationLauncher import ApplicationLauncher
|
||||
from hilos.LanguageChart import LanguageChart
|
||||
from hilos.ChatWidget import ChatWidget # Widget de chat en tiempo real
|
||||
from hilos.MusicPlayer import MusicPlayer # Reproductor de música
|
||||
from hilos.WeatherWidget import WeatherWidget # Widget del clima con API de OpenWeather
|
||||
from hilos.SystemMonitor import SystemMonitor # Monitor del sistema (CPU, RAM, etc.)
|
||||
from hilos.ApplicationLauncher import ApplicationLauncher # Lanzador de aplicaciones
|
||||
from hilos.LanguageChart import LanguageChart # Gráfico de lenguajes de programación
|
||||
|
||||
# Crear la ventana principal
|
||||
root = tk.Tk()
|
||||
root.title("Ventana Responsive")
|
||||
root.geometry("1000x700") # Tamaño inicial
|
||||
root.title("Ventana Responsive") # Título de la ventana
|
||||
root.geometry("1000x700") # Definir el tamaño inicial de la ventana
|
||||
|
||||
# Crear el menú superior
|
||||
# Crear el menú superior de la aplicación (actualmente vacío)
|
||||
menu_bar = Menu(root)
|
||||
root.config(menu=menu_bar)
|
||||
|
||||
# Frames laterales y central
|
||||
frame_izquierdo = tk.Frame(root, bg="lightblue", width=150)
|
||||
frame_central = tk.Frame(root, bg="white")
|
||||
frame_derecho = tk.Frame(root, bg="lightgreen", width=150)
|
||||
# Crear los frames (paneles) laterales y central
|
||||
frame_izquierdo = tk.Frame(root, bg="lightblue", width=150) # Panel lateral izquierdo
|
||||
frame_central = tk.Frame(root, bg="white") # Panel central principal
|
||||
frame_derecho = tk.Frame(root, bg="lightgreen", width=150) # Panel lateral derecho
|
||||
|
||||
frame_izquierdo.grid(row=0, column=0, sticky="ns")
|
||||
frame_central.grid(row=0, column=1, sticky="nsew")
|
||||
frame_derecho.grid(row=0, column=2, sticky="ns")
|
||||
# Ubicar los frames en la cuadrícula de la ventana
|
||||
frame_izquierdo.grid(row=0, column=0, sticky="ns") # Se extiende en dirección norte-sur
|
||||
frame_central.grid(row=0, column=1, sticky="nsew") # Se expande en ambas direcciones
|
||||
frame_derecho.grid(row=0, column=2, sticky="ns") # Se extiende en dirección norte-sur
|
||||
|
||||
# Añadir widgets a los paneles
|
||||
weather_widget = WeatherWidget(frame_izquierdo, "API_KEY")
|
||||
app_launcher = ApplicationLauncher(frame_izquierdo)
|
||||
language_chart = LanguageChart(frame_izquierdo)
|
||||
chat_widget = ChatWidget(frame_derecho)
|
||||
music_player = MusicPlayer(frame_derecho)
|
||||
weather_widget = WeatherWidget(frame_izquierdo, "API_KEY") # Widget del clima en el panel izquierdo
|
||||
app_launcher = ApplicationLauncher(frame_izquierdo) # Lanzador de aplicaciones en el panel izquierdo
|
||||
language_chart = LanguageChart(frame_izquierdo) # Gráfico de lenguajes de programación en el panel izquierdo
|
||||
chat_widget = ChatWidget(frame_derecho) # Chat en vivo en el panel derecho
|
||||
music_player = MusicPlayer(frame_derecho) # Reproductor de música en el panel derecho
|
||||
|
||||
# Barra de estado
|
||||
# Crear la barra de estado en la parte inferior de la ventana
|
||||
barra_estado = tk.Label(root, text="Barra de estado", bg="lightgray", anchor="w")
|
||||
barra_estado.grid(row=1, column=0, columnspan=3, sticky="ew")
|
||||
barra_estado.grid(row=1, column=0, columnspan=3, sticky="ew") # Se extiende horizontalmente
|
||||
|
||||
# Inicializar el monitor del sistema
|
||||
stop_event = threading.Event()
|
||||
system_monitor = SystemMonitor(barra_estado, stop_event)
|
||||
# Inicializar el monitor del sistema para mostrar uso de CPU, RAM, etc.
|
||||
stop_event = threading.Event() # Evento para detener el monitor al cerrar la app
|
||||
system_monitor = SystemMonitor(barra_estado, stop_event) # Monitoriza el sistema y actualiza la barra de estado
|
||||
|
||||
# Manejar el cierre de la aplicación
|
||||
# Función para manejar el cierre de la aplicación
|
||||
def on_closing():
|
||||
stop_event.set()
|
||||
root.destroy()
|
||||
"""Se ejecuta al cerrar la ventana, deteniendo los procesos activos."""
|
||||
stop_event.set() # Detiene el monitor del sistema
|
||||
root.destroy() # Cierra la ventana principal
|
||||
|
||||
# Asignar la función de cierre cuando el usuario intenta cerrar la ventana
|
||||
root.protocol("WM_DELETE_WINDOW", on_closing)
|
||||
|
||||
# Iniciar el bucle principal de la aplicación
|
||||
root.mainloop()
|
||||
|
|
Loading…
Reference in New Issue