ProyectFinalServices/VistaMain.py

92 lines
3.9 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()
self.crear_menu_lateral()
self.crear_terminal()
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)
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)
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 crear_menu_lateral(self):
self.url_label = tk.Label(self.menu_frame, text="Ingrese URL:", background="#f0f0f0")
self.url_label.pack(pady=(10, 5))
self.url_entry = tk.Entry(self.menu_frame, width=25)
self.url_entry.pack(pady=(0, 10), padx=10)
self.boton_seguir = ttk.Button(self.menu_frame, text="Seguir", command=self.accion_seguir)
self.boton_seguir.pack(pady=5, padx=10, fill="x")
self.boton_parar = ttk.Button(self.menu_frame, text="Parar", command=self.accion_parar)
self.boton_parar.pack(pady=5, padx=10, fill="x")
def crear_terminal(self):
self.terminal_frame = tk.Frame(self.root, height=200, background="#1e1e1e", relief="ridge", borderwidth=3)
self.terminal_frame.pack(side="bottom", fill="x", padx=10, pady=10)
self.terminal_text = tk.Text(self.terminal_frame, height=10, bg="#1e1e1e", fg="#00FF00", insertbackground="white", font=("Courier", 12), wrap="word", borderwidth=0)
self.terminal_text.pack(fill="both", expand=True, padx=10, pady=10)
self.terminal_text.insert("end", "Terminal iniciada...\n")
self.terminal_text.config(state="disabled")
def accion_seguir(self):
url = self.url_entry.get()
self.agregar_a_terminal(f"Seguir con la URL: {url}")
def accion_parar(self):
self.agregar_a_terminal("Acción de parar ejecutada")
def agregar_a_terminal(self, texto):
self.terminal_text.config(state="normal")
self.terminal_text.insert("end", texto + "\n")
self.terminal_text.config(state="disabled")
self.terminal_text.see("end")
def mostrar_frame(self, frame_name):
for frame in self.frames.values():
frame.lower()
self.frames[frame_name].lift()