54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
import tkinter as tk
|
|
import threading
|
|
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
|
|
|
|
# Crear la ventana principal
|
|
root = tk.Tk()
|
|
root.title("Ventana Responsive")
|
|
root.geometry("1000x700") # Tamaño inicial
|
|
|
|
# Crear el menú superior
|
|
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)
|
|
|
|
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")
|
|
|
|
# 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)
|
|
|
|
# Barra de estado
|
|
barra_estado = tk.Label(root, text="Barra de estado", bg="lightgray", anchor="w")
|
|
barra_estado.grid(row=1, column=0, columnspan=3, sticky="ew")
|
|
|
|
# Inicializar el monitor del sistema
|
|
stop_event = threading.Event()
|
|
system_monitor = SystemMonitor(barra_estado, stop_event)
|
|
|
|
# Manejar el cierre de la aplicación
|
|
def on_closing():
|
|
stop_event.set()
|
|
root.destroy()
|
|
|
|
root.protocol("WM_DELETE_WINDOW", on_closing)
|
|
root.mainloop()
|