Título: ayuda con programa tkinter con ventanas Publicado por: Roxor en 17 Junio 2019, 08:20 am hola, tengo un problema con este código ya que no me almacena los datos que uno ingresa dentro de la ventana de ingresar datos, ojalá que alguien me pudiera echar una mano:
import csv, sys, os from tkinter import * from tkinter import messagebox lista=[] def guardardatos(): Folio=folio.get() Rut=rut.get() Nombre=nombre.get() Departamento=departamento.get() Mes=mes.get() Cdias=cdias.get() Sbase=sbase.get() Descuento=descuento.get() licencia=(Folio+";"+Rut+";"+Nombre+";"+Departamento+";"+Mes+";"+Cdias+";"+Sbase+";"+Descuento) lista.append(licencia) escribir_licencia(licencia) folio.set("") rut.set("") nombre.set("") departamento.set("") mes.set("") cdias.set("") sbase.set("") descuento.set("") def iniciar_archivo(): archivo = open("licencias.csv","w") archivo.close() def cargar(): try: archivo = open("licencias.csv","r") except IOError: iniciar_archivo() return linea = archivo.readline() while linea != '': linea.strip() lista.append(linea) linea = archivo.readline() archivo.close() def escribir_licencia(licencia): archivo = open("licencias.csv","a") archivo.write(licencia + "\n") archivo.close() # messagebox.showinfo('Guardado','Licencia guardada') root=Tk() filewin = Toplevel(root) # crea la ventana hija filewin imagen1=PhotoImage(file="licencia.gif") label1 = Label(root, image=imagen1) label1.grid(row=1,column=1) #variables para almacenar datos folio=StringVar() rut=StringVar() nombre=StringVar() departamento=StringVar() mes=StringVar() cdias=StringVar() sbase=StringVar() descuento=StringVar() cargar() def entradadatos(): filewin2 = Toplevel(root) Label(filewin2,text="").grid(row=1,column=1) Label(filewin2,text="Ingreso de datos").grid(row=1,column=2) filewin2.title('Ventana de ingreso de datos') filewin2.geometry('250x250') #Folio etiqueta_folio = Label(filewin2, text='Folio :') entrada_folio = Entry(filewin2, textvariable=folio) etiqueta_folio.grid(row=2, column=1) entrada_folio.grid(row=2, column=2) #rut etiqueta_rut = Label(filewin2, text='Rut :') entrada_rut = Entry(filewin2, textvariable=rut) etiqueta_rut.grid(row=3, column=1) entrada_rut.grid(row=3, column=2) #nombre etiqueta_nombre = Label(filewin2, text='Nombre :') entrada_nombre = Entry(filewin2, textvariable=nombre) etiqueta_nombre.grid(row=4, column=1) entrada_nombre.grid(row=4, column=2) #departamento etiqueta_departamento = Label(filewin2, text='Departamento :') entrada_departamento = Entry(filewin2, textvariable=departamento) etiqueta_departamento.grid(row=5, column=1) entrada_departamento.grid(row=5, column=2) #mes etiqueta_mes = Label(filewin2, text='Mes :') entrada_mes = Entry(filewin2, textvariable=mes) etiqueta_mes.grid(row=6, column=1) entrada_mes.grid(row=6, column=2) #cdias etiqueta_cdias = Label(filewin2, text='Cantidad de dias :') entrada_cdias = Entry(filewin2, textvariable=cdias) etiqueta_cdias.grid(row=7, column=1) entrada_cdias.grid(row=7, column=2) #sbase etiqueta_sbase = Label(filewin2, text='Sueldo base :') entrada_sbase = Entry(filewin2, textvariable=sbase) etiqueta_sbase.grid(row=8, column=1) entrada_sbase.grid(row=8, column=2) #descuento etiqueta_descuento = Label(filewin2, text='Descuento :') entrada_descuento = Entry(filewin2, textvariable=descuento) etiqueta_descuento.grid(row=9, column=1) entrada_descuento.grid(row=9, column=2) boton = Button(filewin2, text='Procesar', command=guardardatos(), width=10).grid(row=11, column=2) menubar = Menu(root) filemenu = Menu(menubar, tearoff=0) filemenu.add_command(label="Ingreso datos", command=entradadatos) filemenu.add_separator() filemenu.add_command(label="Salir", command=root.destroy) menubar.add_cascade(label="Menú principal", menu=filemenu) editmenu = Menu(menubar, tearoff=0) root.config(menu=menubar) # asocia el menu a la ventana root root.title ("Proyecto Programación I") root.mainloop() Título: Re: ayuda con programa tkinter con ventanas Publicado por: tincopasan en 17 Junio 2019, 10:51 am básicamente:
Código
sobran"()" al llamar a la función del botón, o sea la forma correcta: Código
Código
supongo que la comentaste porque se ejecutaba sola, osea sin hacer click en el botón. Saludos |