ayuda con programa tkinter con ventanas

Iniciado por Roxor, 17 Junio 2019, 08:20 AM

0 Miembros y 1 Visitante están viendo este tema.

Roxor

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()

tincopasan

#1
básicamente:
Código (python) [Seleccionar]
boton = Button(filewin2, text='Procesar', command=guardardatos(), width=10).grid(row=11, column=2)

sobran"()" al llamar a la función del botón, o sea la forma correcta:

Código (python) [Seleccionar]

boton = Button(filewin2, text='Procesar', command=guardardatos, width=10).grid(row=11, column=2)


Código (python) [Seleccionar]
#   messagebox.showinfo('Guardado','Licencia guardada')

supongo que la comentaste porque se ejecutaba sola, osea sin hacer click en el botón.
Saludos