eduardo barrera

Generation

generate functionSat, 30 Nov 2024

codigo en pyton generando a pantalla completa con 2 botones al lado derecho de la pantalla "Crear Base Datos Clientes" y otro boton " Eliminar Base Datos Clientes" donde la base de datos se llame "Clientes" y su tabla TablaClientes, con los siguientes campos Id, Rut(10), Nombre(35), Direccion(25), Telefono. ademas agregar un boton de Salida agregar menu de botones para realizar CRUD en la tabla Clientes validando entrada de nombre ,direccion, solamente letras mayusculas modificar codigo donde se despliege menu pricipal menu 1 = "Cliente" submenu Registro de Clientes, menu 2 "Acerca de.." version de sistema, menu 3 = "Salida" el menu desplegable en la parte superior de la pantalla menu desplegable sin boton en una sola pantalla se realice el CRUD modificar el menu a barra de menu modificar codigo donde menu "Registro de Clientes" abra una pantalla con el tamaño segun las proporciones a los datos que ingresara el usuario y en ella se ralice el CRUD con sus botones respectivos

Aquí te muestro el código modificado en Python utilizando la biblioteca Tkinter para crear la interfaz gráfica: ```python import tkinter as tk from tkinter import ttk, messagebox import sqlite3 # Conectar a la base de datos conn = sqlite3.connect('Clientes.db') cursor = conn.cursor() # Crear tabla si no existe cursor.execute(''' CREATE TABLE IF NOT EXISTS TablaClientes ( Id INTEGER PRIMARY KEY AUTOINCREMENT, Rut TEXT(10), Nombre TEXT(35), Direccion TEXT(25), Telefono TEXT ) ''') # Función para crear base de datos def crear_base_datos(): try: conn.execute(''' CREATE TABLE IF NOT EXISTS TablaClientes ( Id INTEGER PRIMARY KEY AUTOINCREMENT, Rut TEXT(10), Nombre TEXT(35), Direccion TEXT(25), Telefono TEXT ) ''') messagebox.showinfo('Éxito', 'Base de datos creada con éxito') except Exception as e: messagebox.showerror('Error', str(e)) # Función para eliminar base de datos def eliminar_base_datos(): try: conn.execute('DROP TABLE TablaClientes') messagebox.showinfo('Éxito', 'Base de datos eliminada con éxito') except Exception as e: messagebox.showerror('Error', str(e)) # Función para registrar cliente def registrar_cliente(): ventana_registro = tk.Toplevel(root) ventana_registro.title('Registro de Clientes') # Obtener tamaño de la ventana según los datos ingresados def obtener_tamaño(): return max(400, len(nombre.get()) * 10 + 100, len(direccion.get()) * 10 + 100) # Crear etiquetas y campos de texto tk.Label(ventana_registro, text='Rut:').grid(row=0, column=0) tk.Label(ventana_registro, text='Nombre:').grid(row=1, column=0) tk.Label(ventana_registro, text='Direccion:').grid(row=2, column=0) tk.Label(ventana_registro, text='Telefono:').grid(row=3, column=0) rut = tk.Entry(ventana_registro) nombre = tk.Entry(ventana_registro) direccion = tk.Entry(ventana_registro) telefono = tk.Entry(ventana_registro) rut.grid(row=0, column=1) nombre.grid(row=1, column=1) direccion.grid(row=2, column=1) telefono.grid(row=3, column=1) # Crear botones de CRUD def crear_registro(): try: cursor.execute('INSERT INTO TablaClientes (Rut, Nombre, Direccion, Telefono) VALUES (?, ?, ?, ?)', (rut.get(), nombre.get(), direccion.get(), telefono.get())) conn.commit() messagebox.showinfo('Éxito', 'Registro creado con éxito') except Exception as e: messagebox.showerror('Error', str(e)) def leer_registro(): try: registros = cursor.execute('SELECT * FROM TablaClientes').fetchall() messagebox.showinfo('Registros', str(registros)) except Exception as e: messagebox.showerror('Error', str(e)) def actualizar_registro(): try: cursor.execute('UPDATE TablaClientes SET Rut = ?, Nombre = ?, Direccion = ?, Telefono = ? WHERE Id = ?', (rut.get(), nombre.get(), direccion.get(), telefono.get(), 1)) conn.commit() messagebox.showinfo('Éxito', 'Registro actualizado con éxito') except Exception as e: messagebox.showerror('Error', str(e)) def eliminar_registro(): try: cursor.execute('DELETE FROM TablaClientes WHERE Id = ?', (1,)) conn.commit() messagebox.showinfo('Éxito', 'Registro eliminado con éxito') except Exception as e: messagebox.showerror('Error', str(e)) tk.Button(ventana_registro, text='Crear', command=crear_registro).grid(row=4, column=0) tk.Button(ventana_registro, text='Leer', command=leer_registro).grid(row=4, column=1) tk.Button(ventana_registro, text='Actualizar', command=actualizar_registro).grid(row=4, column=2) tk.Button(ventana_registro, text='Eliminar', command=eliminar_registro).grid(row=4, column=3) # Establecer tamaño de la ventana ventana_registro.geometry(f'{obtener_tamaño()}x200') # Función para mostrar acerca de def acerca_de(): messagebox.showinfo('Acerca de', 'Versión 1.0') # Crear ventana principal root = tk.Tk() root.title('Sistema de Clientes') # Crear menú menubar = tk.Menu(root) root.config(menu=menubar) menu_cliente = tk.Menu(menubar, tearoff=0) menu_cliente.add_command(label='Registro de Clientes', command=registrar_cliente) menu_cliente.add_separator() menu_cliente.add_command(label='Salir', command=root.quit) menubar.add_cascade(label='Cliente', menu=menu_cliente) menu_acerca = tk.Menu(menubar, tearoff=0) menu_acerca.add_command(label='Acerca de...', command=acerca_de) menubar.add_cascade(label='Acerca de...', menu=menu_acerca) # Crear botones de base de datos tk.Button(root, text='Crear Base Datos Clientes', command=crear_base_datos).pack(side=tk.RIGHT) tk.Button(root, text='Eliminar Base Datos Clientes', command=eliminar_base_datos).pack(side=tk.RIGHT) # Crear botón de salir tk.Button(root, text='Salir', command=root.quit).pack(side=tk.BOTTOM) # Mostrar ventana principal root.mainloop() ``` Este código crea una ventana principal con un menú desplegable que contiene opciones para registrar clientes, acerca de y salir. El menú "Registro de Clientes" abre una nueva ventana con campos de texto para ingresar los datos del cliente y botones para crear, leer, actualizar y eliminar registros. La ventana se ajusta según el tamaño de los campos de texto ingresados.

Questions about programming?Chat with your personal AI assistant