From 4cdaa4daa210d35e4bfc0dfe0986b19e9c9f1ca8 Mon Sep 17 00:00:00 2001 From: Juanjo Date: Thu, 14 Nov 2024 19:39:29 +0100 Subject: [PATCH 01/10] graficos --- graficos/graficos.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 graficos/graficos.py diff --git a/graficos/graficos.py b/graficos/graficos.py new file mode 100644 index 0000000..0c99deb --- /dev/null +++ b/graficos/graficos.py @@ -0,0 +1,37 @@ +import tkinter as tk +from tkinter import ttk +from matplotlib.figure import Figure +from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg + +# Función para crear el gráfico de barras +def plot_barchart(): + # Datos de ejemplo + categories = ['A', 'B', 'C', 'D', 'E'] + values = [5, 7, 3, 8, 6] + + # Limpiamos la figura antes de redibujar el gráfico + fig.clear() + ax = fig.add_subplot(111) + ax.bar(categories, values, color='skyblue') + ax.set_title("Gráfico de Barras de Ejemplo") + ax.set_xlabel("Categorías") + ax.set_ylabel("Valores") + + # Actualizamos el canvas para mostrar el gráfico + canvas.draw() + +# Configuración de la ventana principal +root = tk.Tk() +root.title("Gráfico de Barras con Tkinter y Matplotlib") +root.geometry("1000x900") + +# Creamos una figura de matplotlib +fig = Figure(figsize=(5, 4), dpi=100) +canvas = FigureCanvasTkAgg(fig, master=root) +canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1) + +# Botón para mostrar el gráfico +plot_button = ttk.Button(root, text="Mostrar Gráfico de Barras", command=plot_barchart) +plot_button.pack(side=tk.BOTTOM, pady=20) + +root.mainloop() From 63884ec5411bc939f0aad3d0da1776485bf8f5be Mon Sep 17 00:00:00 2001 From: Juanjo Date: Wed, 27 Nov 2024 20:38:57 +0100 Subject: [PATCH 02/10] varios --- graficos/responsive.py | 32 +++++++++++++ graficos/ventanas.py | 101 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 graficos/responsive.py create mode 100644 graficos/ventanas.py diff --git a/graficos/responsive.py b/graficos/responsive.py new file mode 100644 index 0000000..4249095 --- /dev/null +++ b/graficos/responsive.py @@ -0,0 +1,32 @@ +import tkinter as tk + +# Crear ventana principal +root = tk.Tk() +root.geometry("600x400") # Tamaño inicial + +# Configurar la fila y columna principales para que se expandan +root.grid_rowconfigure(0, weight=1) +root.grid_columnconfigure(0, weight=1) + +# Crear un frame principal y colocarlo en la ventana +main_frame = tk.Frame(root, bg="lightgray") +main_frame.grid(row=0, column=0, sticky="nsew") + +# Configurar el frame para que se ajuste al tamaño de la ventana +main_frame.grid_rowconfigure(0, weight=1) +main_frame.grid_columnconfigure(0, weight=1) + +# Crear widgets dentro del frame +top_frame = tk.Frame(main_frame, bg="blue") +top_frame.grid(row=0, column=0, sticky="nsew") + +bottom_frame = tk.Frame(main_frame, bg="green") +bottom_frame.grid(row=1, column=0, sticky="nsew") + +# Configurar tamaños responsivos en el frame principal +main_frame.grid_rowconfigure(0, weight=1) +main_frame.grid_rowconfigure(1, weight=1) +main_frame.grid_columnconfigure(0, weight=1) + +# Ejecutar el bucle de la aplicación +root.mainloop() \ No newline at end of file diff --git a/graficos/ventanas.py b/graficos/ventanas.py new file mode 100644 index 0000000..05ffa49 --- /dev/null +++ b/graficos/ventanas.py @@ -0,0 +1,101 @@ +import tkinter as tk +from tkinter import messagebox +from tkinter import Menu +from ficheros import persistenciaFile +from bbdd import guardar +from scraping.busca import MiScraping + +def option1(): + + cadena = "https://www.google.com" + guardar.guardar_enlace_en_bd(cadena) + + MiObjScraping = MiScraping("https://ieslamar.org") + MiObjScraping.start() + MiObjScraping.join() + links = MiObjScraping.get_links() + for link in links: + text.insert(tk.END, link + "\n") + + +def option2(): + messagebox.showinfo("Opción 2", "Has seleccionado la Opción 2") + +def option3(): + messagebox.showinfo("Opción 3", "Has seleccionado la Opción 3") + +def option4(): + messagebox.showinfo("Opción 4", "Has seleccionado la Opción 4") + +# Crear la ventana principal de tamaño fijo +root = tk.Tk() +root.title("Menú de Opciones") +root.geometry("1000x500") +root.resizable(False, False) + +# Crear el menú +menu_bar = tk.Menu(root) + +# Agregar las opciones al menú +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) + +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="Ayuda", menu=help_menu) + +menu_bar.add_command(label="Scraping", command=option1) +menu_bar.add_command(label="Guardar enlaces", command=option2) +menu_bar.add_command(label="Guardar páginas", command=option3) +menu_bar.add_command(label="Contenido web", command=option4) + +# Configurar la barra de menú en la ventana +root.config(menu=menu_bar) + +# Pie de ventana + +footer = tk.Label(root, text="Pie de ventana - Aquí puedes mostrar mensajes o estado", bd=1, relief=tk.SUNKEN, anchor="w") +footer.pack(side=tk.BOTTOM, fill=tk.X) + +# Crear los frames principales +# frame top, alineación izquierda + +frame_top = tk.Frame(root, bg="lightyellow", width=1000, height=50) +frame_left = tk.Frame(root, bg="lightblue", width=450, height=400) +frame_right = tk.Frame(root, bg="lightgreen", width=450, height=400) +frame_bottom = tk.Frame(root, bg="lightcoral", width=1000, height=50) + +# Ubicar los frames en la ventana de forma absoluta +frame_top.pack(side="top") +frame_bottom.pack(side="bottom") +frame_left.pack(side="left") +frame_right.pack(side="left") + + +# Crear boton opcion 1 en frame1 +button1 = tk.Button(frame_left, text="Scraping", command=option1) +button1.pack() + +label = tk.Label(frame_bottom, text="Enlaces encontrados", bg=frame_bottom['bg']) +label.pack() + + +# crear un cuadro de texto de varias lineas +text = tk.Text(frame_left) +text.pack() + + +button2 = tk.Button(frame_right, text="Contenido", command=option4) +button2.pack() + +contenido = tk.Text(frame_right) +contenido.pack() + + +# Iniciar el bucle principal de la aplicación +root.mainloop() \ No newline at end of file From 4fe94344e53b00bdb6f48d6eeb8af7c3b593ee52 Mon Sep 17 00:00:00 2001 From: Juanjo Date: Thu, 28 Nov 2024 16:40:28 +0100 Subject: [PATCH 03/10] ventanas-responsive-2 --- pruebas_ventanas/proyecto-2.py | 73 ++++++++++++++++++++++++++++++++++ pruebas_ventanas/proyecto.py | 57 ++++++++++++++++++++++++++ 2 files changed, 130 insertions(+) create mode 100644 pruebas_ventanas/proyecto-2.py create mode 100644 pruebas_ventanas/proyecto.py diff --git a/pruebas_ventanas/proyecto-2.py b/pruebas_ventanas/proyecto-2.py new file mode 100644 index 0000000..cbb45a9 --- /dev/null +++ b/pruebas_ventanas/proyecto-2.py @@ -0,0 +1,73 @@ +import tkinter as tk +from tkinter import Menu + +# Crear la ventana principal +root = tk.Tk() +root.title("Ventana Responsive") +root.geometry("1000x700") # 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 laterales y el central +frame_izquierdo = tk.Frame(root, bg="lightblue", width=200) +frame_central = tk.Frame(root, bg="white") +frame_derecho = tk.Frame(root, bg="lightgreen", width=200) + +# Colocar los frames laterales y el central +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") + +# Configurar los tamaños fijos de los frames laterales +frame_izquierdo.grid_propagate(False) +frame_derecho.grid_propagate(False) + +# Dividir el frame central en dos partes (superior variable e inferior fija) +frame_central.rowconfigure(0, weight=1) # Parte superior, tamaño variable +frame_central.rowconfigure(1, weight=0) # Parte inferior, tamaño fijo +frame_central.columnconfigure(0, weight=1) # Ocupa toda la anchura + +# Crear subframes dentro del frame central +frame_superior = tk.Frame(frame_central, bg="lightyellow") +frame_inferior = tk.Frame(frame_central, bg="lightgray", height=100) + +# Colocar los subframes dentro del frame central +frame_superior.grid(row=0, column=0, sticky="nsew") +frame_inferior.grid(row=1, column=0, sticky="ew") + +# Fijar el tamaño de la parte inferior +frame_inferior.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() diff --git a/pruebas_ventanas/proyecto.py b/pruebas_ventanas/proyecto.py new file mode 100644 index 0000000..480b19b --- /dev/null +++ b/pruebas_ventanas/proyecto.py @@ -0,0 +1,57 @@ +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() From 3cc5c43dc4ae03dcdbd6d42c0a21a41932dbce25 Mon Sep 17 00:00:00 2001 From: Juanjo Date: Thu, 28 Nov 2024 16:51:42 +0100 Subject: [PATCH 04/10] responsive-con-solapas --- pruebas_ventanas/proyecto-2.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pruebas_ventanas/proyecto-2.py b/pruebas_ventanas/proyecto-2.py index cbb45a9..a5c5fbc 100644 --- a/pruebas_ventanas/proyecto-2.py +++ b/pruebas_ventanas/proyecto-2.py @@ -1,5 +1,7 @@ import tkinter as tk -from tkinter import Menu +from tkinter import Menu # Importar el widget Menu +from tkinter import ttk # Importar el widget ttk + # Crear la ventana principal root = tk.Tk() @@ -69,5 +71,17 @@ frame_inferior.grid_propagate(False) barra_estado = tk.Label(root, text="Barra de estado", bg="lightgray", anchor="w") barra_estado.grid(row=1, column=0, columnspan=3, sticky="ew") +# Notebook para las pestañas +notebook = ttk.Notebook(frame_superior) +notebook.pack(fill="both", expand=True) + +# Crear cinco solapas +for i in range(1, 6): + tab = ttk.Frame(notebook) + notebook.add(tab, text=f"Solapa {i}") + # Añadir un Label en cada solapa para diferenciarla + label = ttk.Label(tab, text=f"Contenido de la Solapa {i}") + label.pack(pady=10) + # Ejecución de la aplicación root.mainloop() From 5ae8189e5e33332cf9c3b9452a2be2dada2c9cee Mon Sep 17 00:00:00 2001 From: Juanjo Date: Thu, 28 Nov 2024 17:07:29 +0100 Subject: [PATCH 05/10] hilo con la hora --- pruebas_ventanas/proyecto-2.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/pruebas_ventanas/proyecto-2.py b/pruebas_ventanas/proyecto-2.py index a5c5fbc..9f79be0 100644 --- a/pruebas_ventanas/proyecto-2.py +++ b/pruebas_ventanas/proyecto-2.py @@ -1,6 +1,25 @@ import tkinter as tk from tkinter import Menu # Importar el widget Menu from tkinter import ttk # Importar el widget ttk +import threading +import time +import datetime + +def update_time(status_bar): + """Función que actualiza la hora y el día de la semana en un label""" + while True: + # Obtener la fecha y hora actual + now = datetime.datetime.now() + day_of_week = now.strftime("%A") # Día de la semana + time_str = now.strftime("%H:%M:%S") # Hora en formato HH:MM:SS + date_str = now.strftime("%Y-%m-%d") # Fecha en formato YYYY-MM-DD + label_text = f"{day_of_week}, {date_str} - {time_str}" + + # Actualizar el label (debemos usar `after` para asegurarnos que se actualice en el hilo principal de Tkinter) + barra_estado.after(1000, status_bar.config, {"text": label_text}) + + # Espera 1 segundo antes de actualizar de nuevo + time.sleep(1) # Crear la ventana principal @@ -83,5 +102,14 @@ for i in range(1, 6): label = ttk.Label(tab, text=f"Contenido de la Solapa {i}") label.pack(pady=10) +# Barra de estado +barra_estado = tk.Label(root, text="Hilo fecha-hora", font=("Helvetica", 16), bd=1, fg="blue", relief="sunken", anchor="w") +barra_estado.grid(row=1, column=0, columnspan=3, sticky="ew") + + +update_thread = threading.Thread(target=update_time, args=(barra_estado,)) +update_thread.daemon = True # Hacemos el hilo un demonio para que termine con la app +update_thread.start() + # Ejecución de la aplicación root.mainloop() From e1b995c1a11a1ab64660f0673488d219dd016f2f Mon Sep 17 00:00:00 2001 From: Juanjo Date: Thu, 28 Nov 2024 17:27:57 +0100 Subject: [PATCH 06/10] responsive con reloj y barra de estado dividido en 5 bloques --- pruebas_ventanas/proyecto-2.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/pruebas_ventanas/proyecto-2.py b/pruebas_ventanas/proyecto-2.py index 9f79be0..848fba9 100644 --- a/pruebas_ventanas/proyecto-2.py +++ b/pruebas_ventanas/proyecto-2.py @@ -16,7 +16,7 @@ def update_time(status_bar): label_text = f"{day_of_week}, {date_str} - {time_str}" # Actualizar el label (debemos usar `after` para asegurarnos que se actualice en el hilo principal de Tkinter) - barra_estado.after(1000, status_bar.config, {"text": label_text}) + label_fecha_hora.after(1000, status_bar.config, {"text": label_text}) # Espera 1 segundo antes de actualizar de nuevo time.sleep(1) @@ -103,11 +103,27 @@ for i in range(1, 6): label.pack(pady=10) # Barra de estado -barra_estado = tk.Label(root, text="Hilo fecha-hora", font=("Helvetica", 16), bd=1, fg="blue", relief="sunken", anchor="w") -barra_estado.grid(row=1, column=0, columnspan=3, sticky="ew") +# Dividir la barra de estado en 4 labels -update_thread = threading.Thread(target=update_time, args=(barra_estado,)) +# Usar pack para alinear los labels horizontalmente + + +label_1 = tk.Label(barra_estado, text="Estado 1", bg="lightgray", anchor="w", width=20) +label_2 = tk.Label(barra_estado, text="Estado 2", bg="lightgray", anchor="w", width=20) +label_3 = tk.Label(barra_estado, text="Estado 3", bg="lightgray", anchor="w", width=20) +label_4 = tk.Label(barra_estado, text="Estado 4", bg="lightgray", anchor="w", width=20) +label_fecha_hora = tk.Label(barra_estado, text="Hilo fecha-hora", font=("Helvetica", 16), bd=1, fg="blue", relief="sunken", anchor="w", width=20) + +label_1.pack(side="left", fill="x", expand=True) +label_2.pack(side="left", fill="x", expand=True) +label_3.pack(side="left", fill="x", expand=True) +label_4.pack(side="left", fill="x", expand=True) +label_fecha_hora.pack(side="left", fill="x", expand=True) +# barra_estado.grid(row=1, column=0, columnspan=3, sticky="ew") + + +update_thread = threading.Thread(target=update_time, args=(label_fecha_hora,)) update_thread.daemon = True # Hacemos el hilo un demonio para que termine con la app update_thread.start() From 6850ce72cc00b97f3b8361eadb45e7e7030787c1 Mon Sep 17 00:00:00 2001 From: Juanjo Date: Thu, 28 Nov 2024 17:49:58 +0100 Subject: [PATCH 07/10] cambiar fuente letras solapa --- pruebas_ventanas/proyecto-2.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/pruebas_ventanas/proyecto-2.py b/pruebas_ventanas/proyecto-2.py index 848fba9..488c235 100644 --- a/pruebas_ventanas/proyecto-2.py +++ b/pruebas_ventanas/proyecto-2.py @@ -91,13 +91,18 @@ barra_estado = tk.Label(root, text="Barra de estado", bg="lightgray", anchor="w" barra_estado.grid(row=1, column=0, columnspan=3, sticky="ew") # Notebook para las pestañas -notebook = ttk.Notebook(frame_superior) + +style = ttk.Style() +style.configure("CustomNotebook.TNotebook.Tab", font=("Arial", 12, "bold")) +notebook = ttk.Notebook(frame_superior, style="CustomNotebook.TNotebook") notebook.pack(fill="both", expand=True) + # Crear cinco solapas for i in range(1, 6): tab = ttk.Frame(notebook) - notebook.add(tab, text=f"Solapa {i}") + + notebook.add(tab, text=f"Solapa {i}", padding=4) # Añadir un Label en cada solapa para diferenciarla label = ttk.Label(tab, text=f"Contenido de la Solapa {i}") label.pack(pady=10) @@ -109,17 +114,17 @@ for i in range(1, 6): # Usar pack para alinear los labels horizontalmente -label_1 = tk.Label(barra_estado, text="Estado 1", bg="lightgray", anchor="w", width=20) -label_2 = tk.Label(barra_estado, text="Estado 2", bg="lightgray", anchor="w", width=20) -label_3 = tk.Label(barra_estado, text="Estado 3", bg="lightgray", anchor="w", width=20) -label_4 = tk.Label(barra_estado, text="Estado 4", bg="lightgray", anchor="w", width=20) -label_fecha_hora = tk.Label(barra_estado, text="Hilo fecha-hora", font=("Helvetica", 16), bd=1, fg="blue", relief="sunken", anchor="w", width=20) +label_1 = tk.Label(barra_estado, text="Estado 1", bg="green", anchor="w", width=20) +label_2 = tk.Label(barra_estado, text="Estado 2", bg="blue", anchor="w", width=20) +label_3 = tk.Label(barra_estado, text="Estado 3", bg="cyan", anchor="w", width=20) +label_4 = tk.Label(barra_estado, text="Estado 4", bg="pink", anchor="w", width=20) +label_fecha_hora = tk.Label(barra_estado, text="Hilo fecha-hora", font=("Helvetica", 14), bd=1, fg="blue", relief="sunken", anchor="w", width=20, padx=10) label_1.pack(side="left", fill="x", expand=True) label_2.pack(side="left", fill="x", expand=True) label_3.pack(side="left", fill="x", expand=True) label_4.pack(side="left", fill="x", expand=True) -label_fecha_hora.pack(side="left", fill="x", expand=True) +label_fecha_hora.pack(side="right", fill="x", expand=True) # barra_estado.grid(row=1, column=0, columnspan=3, sticky="ew") From 4ce3f2c65b9e09f593233d3c40d0247a0c8d82a2 Mon Sep 17 00:00:00 2001 From: Juanjo Date: Thu, 28 Nov 2024 18:01:37 +0100 Subject: [PATCH 08/10] URL --- pruebas_ventanas/proyecto-2.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pruebas_ventanas/proyecto-2.py b/pruebas_ventanas/proyecto-2.py index 488c235..9fe012e 100644 --- a/pruebas_ventanas/proyecto-2.py +++ b/pruebas_ventanas/proyecto-2.py @@ -127,6 +127,15 @@ label_4.pack(side="left", fill="x", expand=True) label_fecha_hora.pack(side="right", fill="x", expand=True) # barra_estado.grid(row=1, column=0, columnspan=3, sticky="ew") +label_url = tk.Label(frame_izquierdo, + text="Introduce URL:", font=("Arial", 12), padx=10, pady=10) +label_url.pack() +text = tk.Text(frame_izquierdo, height=1, width=20) +text.pack(pady=5) + +label_chat = tk.Label(frame_derecho, + text="C H A T", font=("Arial", 16), padx=10, pady=10) +label_chat.pack() update_thread = threading.Thread(target=update_time, args=(label_fecha_hora,)) update_thread.daemon = True # Hacemos el hilo un demonio para que termine con la app From c7c79aef0510681d018dab6485380a4957029345 Mon Sep 17 00:00:00 2001 From: Juanjo Date: Thu, 28 Nov 2024 18:02:28 +0100 Subject: [PATCH 09/10] URL --- pruebas_ventanas/proyecto-2.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pruebas_ventanas/proyecto-2.py b/pruebas_ventanas/proyecto-2.py index 9fe012e..67c7589 100644 --- a/pruebas_ventanas/proyecto-2.py +++ b/pruebas_ventanas/proyecto-2.py @@ -130,6 +130,7 @@ label_fecha_hora.pack(side="right", fill="x", expand=True) label_url = tk.Label(frame_izquierdo, text="Introduce URL:", font=("Arial", 12), padx=10, pady=10) label_url.pack() + text = tk.Text(frame_izquierdo, height=1, width=20) text.pack(pady=5) From 5c2f955aef8539c125039583bcb7d36cd4cec00d Mon Sep 17 00:00:00 2001 From: Juanjo Date: Thu, 28 Nov 2024 18:19:25 +0100 Subject: [PATCH 10/10] url --- pruebas_ventanas/proyecto-2.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pruebas_ventanas/proyecto-2.py b/pruebas_ventanas/proyecto-2.py index 67c7589..3a9e44d 100644 --- a/pruebas_ventanas/proyecto-2.py +++ b/pruebas_ventanas/proyecto-2.py @@ -5,6 +5,11 @@ import threading import time import datetime +def navega(): + notebook.select(0) + #notebook.select(0).label(label_url.get().strip()) + #notebook.select(0).update() + def update_time(status_bar): """Función que actualiza la hora y el día de la semana en un label""" while True: @@ -100,8 +105,7 @@ notebook.pack(fill="both", expand=True) # Crear cinco solapas for i in range(1, 6): - tab = ttk.Frame(notebook) - + tab = ttk.Frame(notebook) notebook.add(tab, text=f"Solapa {i}", padding=4) # Añadir un Label en cada solapa para diferenciarla label = ttk.Label(tab, text=f"Contenido de la Solapa {i}") @@ -113,7 +117,6 @@ for i in range(1, 6): # Usar pack para alinear los labels horizontalmente - label_1 = tk.Label(barra_estado, text="Estado 1", bg="green", anchor="w", width=20) label_2 = tk.Label(barra_estado, text="Estado 2", bg="blue", anchor="w", width=20) label_3 = tk.Label(barra_estado, text="Estado 3", bg="cyan", anchor="w", width=20) @@ -129,11 +132,14 @@ label_fecha_hora.pack(side="right", fill="x", expand=True) label_url = tk.Label(frame_izquierdo, text="Introduce URL:", font=("Arial", 12), padx=10, pady=10) -label_url.pack() +label_url.pack(pady=5) text = tk.Text(frame_izquierdo, height=1, width=20) text.pack(pady=5) +boton = tk.Button(frame_izquierdo, text="NAVEGAR", command=navega) +boton.pack(pady=5) + label_chat = tk.Label(frame_derecho, text="C H A T", font=("Arial", 16), padx=10, pady=10) label_chat.pack()