58 lines
1.9 KiB
Python
58 lines
1.9 KiB
Python
import tkinter as tk
|
|
from tkinter import Menu
|
|
|
|
# Crear la ventana principal
|
|
root = tk.Tk()
|
|
root.title("Ventana Responsive")
|
|
root.geometry("800x600") # Tamaño inicial
|
|
|
|
# Configurar la ventana principal para que sea responsive
|
|
root.columnconfigure(0, weight=0) # Columna izquierda, tamaño fijo
|
|
root.columnconfigure(1, weight=1) # Columna central, tamaño variable
|
|
root.columnconfigure(2, weight=0) # Columna derecha, tamaño fijo
|
|
root.rowconfigure(0, weight=1) # Fila principal, tamaño variable
|
|
root.rowconfigure(1, weight=0) # Barra de estado, tamaño fijo
|
|
|
|
# Crear el menú superior
|
|
menu_bar = Menu(root)
|
|
|
|
file_menu = Menu(menu_bar, tearoff=0)
|
|
file_menu.add_command(label="Nuevo")
|
|
file_menu.add_command(label="Abrir")
|
|
file_menu.add_separator()
|
|
file_menu.add_command(label="Salir", command=root.quit)
|
|
|
|
edit_menu = Menu(menu_bar, tearoff=0)
|
|
edit_menu.add_command(label="Copiar")
|
|
edit_menu.add_command(label="Pegar")
|
|
|
|
help_menu = Menu(menu_bar, tearoff=0)
|
|
help_menu.add_command(label="Acerca de")
|
|
|
|
menu_bar.add_cascade(label="Archivo", menu=file_menu)
|
|
menu_bar.add_cascade(label="Editar", menu=edit_menu)
|
|
menu_bar.add_cascade(label="Ayuda", menu=help_menu)
|
|
|
|
root.config(menu=menu_bar)
|
|
|
|
# Crear los frames
|
|
frame_izquierdo = tk.Frame(root, bg="lightblue", width=300, height=600)
|
|
frame_central = tk.Frame(root, bg="white")
|
|
frame_derecho = tk.Frame(root, bg="lightgreen", width=300, height=600)
|
|
|
|
# Colocar los frames en el grid
|
|
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")
|
|
|
|
# Fijar tamaños de los frames laterales
|
|
frame_izquierdo.grid_propagate(False)
|
|
frame_derecho.grid_propagate(False)
|
|
|
|
# Crear la 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")
|
|
|
|
# Ejecución de la aplicación
|
|
root.mainloop()
|