44 lines
1.8 KiB
Python
44 lines
1.8 KiB
Python
import tkinter as tk
|
|
from tkinter import scrolledtext
|
|
|
|
class VistaChat:
|
|
def __init__(self, root, controlador):
|
|
self.root = root
|
|
self.root.title("Chat Cliente-Servidor")
|
|
self.controlador = controlador
|
|
|
|
# Botón para iniciar el servidor
|
|
self.server_button = tk.Button(root, text="Iniciar Servidor", command=self.controlador.iniciar_servidor)
|
|
self.server_button.grid(row=0, column=0, padx=10, pady=10)
|
|
|
|
# Botón para conectar el cliente
|
|
self.connect_button = tk.Button(root, text="Conectar Cliente", command=self.controlador.conectar_cliente)
|
|
self.connect_button.grid(row=0, column=1, padx=10, pady=10)
|
|
|
|
# Área de chat
|
|
self.chat_display = scrolledtext.ScrolledText(root, wrap=tk.WORD, state='disabled', width=50, height=20)
|
|
self.chat_display.grid(row=1, column=0, padx=10, pady=10, columnspan=2)
|
|
|
|
# Campo de entrada de mensajes
|
|
self.message_entry = tk.Entry(root, width=40)
|
|
self.message_entry.grid(row=2, column=0, padx=10, pady=10)
|
|
|
|
# Botón para enviar mensajes
|
|
self.send_button = tk.Button(root, text="Enviar", command=self.controlador.enviar_mensaje, state='disabled')
|
|
self.send_button.grid(row=2, column=1, padx=10, pady=10)
|
|
|
|
def mostrar_mensaje(self, mensaje):
|
|
"""Muestra un mensaje en el chat."""
|
|
self.chat_display.config(state='normal')
|
|
self.chat_display.insert(tk.END, mensaje + '\n')
|
|
self.chat_display.config(state='disabled')
|
|
self.chat_display.yview(tk.END)
|
|
|
|
def habilitar_envio(self):
|
|
"""Habilita el botón de enviar mensajes."""
|
|
self.send_button.config(state='normal')
|
|
|
|
def deshabilitar_envio(self):
|
|
"""Deshabilita el botón de enviar mensajes."""
|
|
self.send_button.config(state='disabled')
|