Python - ayuda,no se que hacer

 
Vista:
Imágen de perfil de el mongi

ayuda,no se que hacer

Publicado por el mongi (3 intervenciones) el 14/03/2023 16:52:17
siendo un amateur en programacion,debo decir que no se muy bien lo que hice.
el problema que tengo es que, a la hora de hacer un boton para enviar la informacion de un cuadro de texto a un excel, me salta el error de que no he definido que es "ed" y sus continuaciones : "ed1", "ed2",etc(el nombre que le di a una entrada de datos). Podran ver que la ventana en la que se recopila informacion es una ventana secundaria que abre con la funcion de un boton(esto lo digo por si ese es el motivo de porque me salta el error).

import tkinter as tk
from tkinter import END, StringVar, ttk

#creando funcion del boton para cerrar todo
def cerrar():
ventana_principal.destroy()ventana_princioal

#creando funcion del boton para enviar la informacion de reinscripcion a un excel
def enviar():
nombre_estudiante =ed.get()
ID_estudiante = ed1.get()
nombre_padre =ed2.get()
cedula_padre =ed3.get()
telefono =ed4.get()

print(nombre_estudiante, "\t", ID_estudiante, "\t", nombre_padre, "\t", cedula_padre, "\t", telefono, "\t")

archivo = open("registro.xlsx", "a")
archivo.write(nombre_estudiante)
archivo.write("\t")
archivo.write(ID_estudiante)
archivo.write("\t")
archivo.write(nombre_padre)
archivo.write("\t")
archivo.write(cedula_padre)
archivo.write("\t")
archivo.write(telefono)
archivo.write("\n")
archivo.close()

ed.delete(0,tk.END)
ed1.delete(0,tk.END)
ed2.delete(0,tk.END)
ed3.delete(0,tk.END)
ed4.delete(0,tk.END)
ed5.delete(0,tk.END)

#creando la funcion para el boton que abre la ventana de reinscripciones

def abrir_ventana_de_reinscripciones():
vn = tk.Toplevel()
vn.title("formulario de reinscripción")
vn.geometry("400x300")
vn.configure(background="dark green")
vn.resizable(False,False)


n_estudiante = StringVar()
id_estudiante = StringVar ()
direccion = StringVar()
fecha_nacimiento = StringVar()
n_padre = StringVar()
c_padre = StringVar()
tel_padre = StringVar()


#insertar etiquetas y cuadros de texto.
e=tk.Label(vn, text="Nombre de estudiante", bg="gray", fg="white")
e.pack(padx=0, pady=0, ipadx=0, ipady=0, fill=tk.X)
#creando los cuadros de texto que almacenan información
ed=tk.Entry(vn, textvariable=n_estudiante)
ed.pack(padx=0, pady=0, ipadx=0, ipady=0, fill=tk.X)

e1=tk.Label(vn, text="ID de estudiante", bg="gray", fg="white")
e1.pack(padx=0, pady=0, ipadx=0, ipady=0, fill=tk.X)
ed1=tk.Entry(vn, textvariable=id_estudiante)
ed1.pack(padx=0, pady=0, ipadx=0, ipady=0, fill=tk.X)

e2=tk.Label(vn, text="Nombre de padre/madre/tutor", bg="gray", fg="white")
e2.pack(padx=0, pady=0, ipadx=0, ipady=0, fill=tk.X)
ed2=tk.Entry(vn, textvariable=n_padre)
ed2.pack(padx=0, pady=0, ipadx=0, ipady=0, fill=tk.X)

e3=tk.Label(vn, text="Cedula de padre/madre/tutor", bg="gray", fg="white")
e3.pack(padx=0, pady=0, ipadx=0, ipady=0, fill=tk.X)
ed3=tk.Entry(vn, textvariable=c_padre)
ed3.pack(padx=0, pady=0, ipadx=0, ipady=0, fill=tk.X)

e4=tk.Label(vn, text="Telefono de padre/madre/tutor", bg="gray", fg="white")
e4.pack(padx=0, pady=0, ipadx=0, ipady=0, fill=tk.X)
ed4=tk.Entry(vn, textvariable=tel_padre)
ed4.pack(padx=0, pady=0, ipadx=0, ipady=0, fill=tk.X)

vn.grab_set()
vn.focus()



#Botones
boton=ttk.Button(vn, text="Enviar información", command=enviar)
boton.pack(side=tk.RIGHT)



boton2=ttk.Button(vn, text="Salir", command=cerrar)
boton2.pack(side=tk.LEFT)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ayuda,no se que hacer

Publicado por el mongi (3 intervenciones) el 14/03/2023 20:15:25
aunque hice exactamente lo que dijiste, ahora hay otro problema: si asigno los valores "tk.Entry(vn, textvariable=n_estudiante)" a las variables globales, el IDLE shell me avisa de que: "ed = tk.Entry(vn, textvariable=n_estudiante)NameError: name 'vn' is not defined", y "vn" es una variable que esta definida como una ventana secundaria. ¿que deberia hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar