Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: xiquipython en 9 Febrero 2019, 12:28 pm



Título: Mi tercer progrma en Tkinter, error!
Publicado por: xiquipython en 9 Febrero 2019, 12:28 pm
https://www.lawebdelprogramador.com/codigo/Python/4752-Simple-cronometro-con-TK.html

from tkinter import Tk,Label,Button,Frame

proceso=0

def iniciar(contador=0):

    global proceso

    time['text'] = contador

 
    proceso=time.after(1000, iniciar, (contador+1))

 

def parar():

    global proceso
        
        time.after_cancel(proceso)

 
root = Tk()

root.title('Cronometro')


time = Label(root, fg='red', width=20, font=("","18"))

time.pack()


frame=Frame(root)

btnIniciar=Button(frame, fg='blue', text='Iniciar', command=iniciar)

btnIniciar.grid(row=1, column=1)

btnParar=Button(frame, fg='blue', text='Parar', command=parar)

btnParar.grid(row=1, column=2)

frame.pack()


root.mainloop()


Título: Re: Mi tercer progrma en Tkinter, error!
Publicado por: EdePC en 9 Febrero 2019, 15:21 pm
Saludos,

- Tienes que leer los errores que muestra Python:

Código:
C:\Users\EdSon\Desktop>tk_contador.py
  File "C:\Users\EdSon\Desktop\tk_contador.py", line 20
    time.after_cancel(proceso)
    ^
IndentationError: unexpected indent

- Dice que hay una Indentación no esperada en la línea 20, luego revisas tu código y te das cuenta de que efectivamente tienes:

Código
  1. def parar():
  2.  
  3.    global proceso
  4.  
  5.        time.after_cancel(proceso)
  6.  
  7.  
  8. root = Tk()

En lugar de:

Código
  1. def parar():
  2.  
  3.    global proceso
  4.  
  5.    time.after_cancel(proceso)
  6.  
  7.  
  8. root = Tk()


Título: Re: Mi tercer progrma en Tkinter, error!
Publicado por: xiquipython en 9 Febrero 2019, 15:46 pm
Funciona lo que me dices, pero  ahora me sale error mas abajo debe ser otra cosa.

Traceback (most recent call last):
  File "C:\Users\xiqui\Desktop\python\xiqui2\cronometro.py", line 40, in <module>
    btnParar=Button(frame, fg='blue', text='Parar', command=parar)
NameError: name 'parar' is not defined




https://likegeeks.com/es/ejemplos-de-la-gui-de-python/


Título: Re: Mi tercer progrma en Tkinter, error!
Publicado por: Guarrino en 11 Febrero 2019, 12:19 pm
Código
  1. from tkinter import Tk,Label,Button,Frame
  2.  
  3. proceso=0
  4.  
  5. def iniciar(contador=0):
  6.    global proceso
  7.  
  8.  
  9.    time['text'] = contador
  10.  
  11.  
  12.    proceso=time.after(1000, iniciar, (contador+1))
  13.  
  14. def parar():
  15.    global proceso
  16.    time.after_cancel(proceso)
  17.  
  18. root = Tk()
  19. root.title('Cronometro')
  20.  
  21. time = Label(root, fg='red', width=20, font=("","18"))
  22. time.pack()
  23.  
  24.  
  25. frame=Frame(root)
  26. btnIniciar=Button(frame, fg='blue', text='Iniciar', command=iniciar)
  27. btnIniciar.grid(row=1, column=1)
  28. btnParar=Button(frame, fg='blue', text='Parar', command=parar)
  29. btnParar.grid(row=1, column=2)
  30. frame.pack()
  31.  
  32. root.mainloop()

A mi este código me funciona. Debería ser igual. Escribe todo tu código de esta manera, donde dice aquí y quita los espacios.

[  code=python  ]  Aqui  [  /code ]


Título: Re: Mi tercer progrma en Tkinter, error!
Publicado por: xiquipython en 11 Febrero 2019, 16:14 pm
Código
  1. from tkinter import Tk,Label,Button,Frame
  2.  
  3. proceso=0
  4.  
  5. def iniciar(contador=0):
  6.    global proceso
  7.  
  8.  
  9.    time['text'] = contador
  10.  
  11.  
  12.    proceso=time.after(1000, iniciar, (contador+1))
  13.  
  14. def parar():
  15.    global proceso
  16.    time.after_cancel(proceso)
  17.  
  18. root = Tk()
  19. root.title('Cronometro')
  20.  
  21. time = Label(root, fg='red', width=20, font=("","18"))
  22. time.pack()
  23.  
  24.  
  25. frame=Frame(root)
  26. btnIniciar=Button(frame, fg='blue', text='Iniciar', command=iniciar)
  27. btnIniciar.grid(row=1, column=1)
  28. btnParar=Button(frame, fg='blue', text='Parar', command=parar)
  29. btnParar.grid(row=1, column=2)
  30. frame.pack()
  31.  
  32. root.mainloop()

A mi este código me funciona. Debería ser igual. Escribe todo tu código de esta manera, donde dice aquí y quita los espacios.

[  code=python  ]  Aqui  [  /code ]


Lo probe quitando los espacios i me saldo error en la linia 3, me estado peleando un rato con la composicon i no hay manera


Título: Re: Mi tercer progrma en Tkinter, error!
Publicado por: EdePC en 11 Febrero 2019, 23:43 pm
- Quizá sea un problema de Indentación, quita toda las indentaciones y vuélvelas a poner, todas deben de ser exactamente iguales en espacios o tabulaciones no vale mezclar.