ProyectFinalServices/VistaMain.py

58 lines
2.4 KiB
Python

import tkinter as tk
from tkinter import ttk
class Vista:
def __init__(self, root):
self.root = root
self.root.title("Ventana con Botones y Frame")
self.root.geometry("1280x720")
self.root.configure(bg="#d3eaf2")
self.crear_estilo()
self.crear_frames()
self.crear_botones()
def crear_estilo(self):
self.style = ttk.Style()
self.style.configure("TButton", font=("Arial", 16), padding=10, background="#007acc", foreground="#ffffff")
self.style.map("TButton", background=[("active", "#005f99")], foreground=[("active", "#ffffff")])
def crear_frames(self):
self.main_frame = tk.Frame(self.root)
self.main_frame.pack(fill="both", expand=True)
self.menu_frame = tk.Frame(self.main_frame, width=200, background="#f0f0f0", relief="sunken", borderwidth=2)
self.menu_frame.pack(side="left", fill="y")
self.content_frame = tk.Frame(self.main_frame, relief="sunken", borderwidth=5, background="#ffffff")
self.content_frame.pack(side="left", expand=True, fill="both", padx=20, pady=20)
# Crear múltiples frames dentro del área de contenido
self.frames = {
"frame1": tk.Frame(self.content_frame, background="#ffdddd"),
"frame2": tk.Frame(self.content_frame, background="#ddffdd"),
"frame3": tk.Frame(self.content_frame, background="#ddddff"),
}
for frame in self.frames.values():
frame.place(relwidth=1, relheight=1) # Superponer frames
def crear_botones(self):
self.button_frame = ttk.Frame(self.root, padding=10)
self.button_frame.pack(side="top", fill="x")
self.button1 = ttk.Button(self.button_frame, text="B1", style="TButton")
self.button2 = ttk.Button(self.button_frame, text="B2", style="TButton")
self.button3 = ttk.Button(self.button_frame, text="B3", style="TButton")
self.button1.pack(side="left", expand=True, fill="both", padx=5, pady=5)
self.button2.pack(side="left", expand=True, fill="both", padx=5, pady=5)
self.button3.pack(side="left", expand=True, fill="both", padx=5, pady=5)
def mostrar_frame(self, frame_name):
# Ocultar todos los frames
for frame in self.frames.values():
frame.lower()
# Mostrar el frame seleccionado
self.frames[frame_name].lift()