Autor
|
Tema: Problema programa Python (Leído 3,302 veces)
|
Akendore
Desconectado
Mensajes: 5
|
[NOTA DEL MODERADOR] No uses la etiqueta de citas, debes usar las etiquetas GeShi para insertar código. y postear en la sección adecuada cómo ya te han comentado.
¡Buenas! Estoy intentando hacer una cuenta atrás con interfaz gráfica. El problema que tengo es que no se como dentro de una función actualizar una label. Acabo de empezar en esto de la programación, llevo un mes. Este es mi código: from tkinter import * from time import * from tkinter.messagebox import * def mostrar(v): v.deiconify() def ocultar(v): v.withdraw() def ejecutar(f): v1.after(200,f) def cuentaatras(_h,_m,_s): x = True try: h = int(_h.get()) m = int(_m.get()) s = int(_s.get()) while (x==True): _h.set(h) _m.set(m) _s.set(s) print(str(h)+":"+str(m)+":"+str(s))#Test if s==0 and m!=0: sleep(1) s=60 m-=1 print(str(h)+":"+str(m)+":"+str(s))#Test elif s==0 and m==0 and h!=0: sleep(1) s=60 m=60 h-=1 print(str(h)+":"+str(m)+":"+str(s))#Test elif s==0 and m==0 and h==0: x=False sleep(1) s-=1 except ValueError: v1a.withdraw() showerror("Rellena todos los campos","Rellena los campos con 0 para que sean invalidos") #ventana cuenta atrás v1 = Tk() v1.title("Cuenta atrás") v1.resizable(0,0) f1=Frame(v1) f1.grid(column=0,row=0,padx=(10,10),pady=(10,10)) #ventana cuenta atrás 2 v1a = Toplevel(v1) v1a.title = v1.title v1a.resizable(0,0) v1a.withdraw() #Elementos Cuenta atrás #Labels LEnCA = Label(f1,text="Introduce el tiempo que quieras contar.").grid(column=1,row=1,columnspan=3,pady=(0,5)) Lh1 = Label(f1,text="Horas:").grid(column=1,row=2) Lm1 = Label(f1,text="Minutos:").grid(column=2,row=2) Ls1 = Label(f1,text="Segundos:").grid(column=3,row=2) #Entradas Eh = StringVar() Ehoras = Entry(f1,width=5,textvar=Eh).grid(column=1,row=3) Em = StringVar() Eminutos = Entry(f1,width=5,textvar=Em).grid(column=2,row=3) Es = StringVar() Esegundos = Entry(f1,width=5,textvar=Es).grid(column=3,row=3) #Botones Bstart1 = Button(f1,text="Start",command=lambda:ejecutar(mostrar(v1a)or (cuentaatras(Eh,Em,Es)))).grid(column=4,row=3) Bcerrar1= Button(f1,text="Cerrar",command=lambda:ejecutar(ocultar(v1))).grid(column=2,row=4) #Elementos Cuenta atrás 2 #Labels h3 = StringVar() Lh3 = Label(v1a,text=h3).grid(column=1,row=2) m3 = StringVar() Mh3 =Label(v1a,text=m3).grid(column=2,row=2) s3 = StringVar() Ls3 = Label(v1a,text=s3).grid(column=3,row=2) #Botones Bparar = Button(v1a,text="Parar",command=()).grid(column=4,row=2) Bcerrar1= Button(v1a,text="Cerrar",command=lambda:ejecutar(ocultar(v1a))).grid(column=2,row=3) v1.mainloop()
Muchas gracias
|
|
« Última modificación: 6 Septiembre 2015, 22:57 pm por Eleкtro »
|
En línea
|
|
|
|
DeMoNcRaZy
Desconectado
Mensajes: 420
$~*|_
|
Buenas, Puedes probar así: var = StringVar() var.set('Texto') l = Label(v1, textvariable = var) l.pack()
PD: El tema está en la sección equivocada, Python tiene lugar en Scripting
Saludos.
|
|
« Última modificación: 6 Septiembre 2015, 22:05 pm por YuseTist »
|
En línea
|
Esta página web no está disponible - Google Chrome
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
Tal y cómo te ha comentado @YuseTist. Aquí tienes una referencia de terceros donde explican todos los parámetros/opciones: ➢ Python Tkinter Label...esta creo que es la referencia oficial de TKinter pero no estoy seguro: ➢ Tkinter 8.5 reference: a GUI for PythonY por último la referencia oficial de TCL/TK: ➢ Tcl8.5.18/Tk8.5.18 Documentation(en algunos casos, al tomar la información de la referencia oficial, necesitarás realizar pequeñas adaptaciones al traducirlo a TKinter por algunos keywords de Python que utiliza TK) Saludos
|
|
« Última modificación: 7 Septiembre 2015, 01:37 am por Eleкtro »
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
un ejemplo simple de lo que querés hacer, obvio que lo tenés que adaptar a tus necesidades. import tkinter as tk import time def cuenta_atras(): # inicio en 3 minutos for t in range(180, -1, -1): sf = "{:02d}:{:02d}".format(*divmod(t, 60)) time_str.set(sf) root.update() # espera 1 segundo time.sleep(1) root = tk.Tk() time_str = tk.StringVar() # esta es la parte del label label_font = ('helvetica', 40) tk.Label(root, textvariable=time_str, font=label_font, bg='white', fg='blue', relief='raised', bd=3).pack(fill='x', padx=5, pady=5) tk.Button(root, text='Count Start', command=cuenta_atras).pack() tk.Button(root, text='Count Stop', command=root.destroy).pack() root.mainloop()
|
|
|
En línea
|
|
|
|
Akendore
Desconectado
Mensajes: 5
|
un ejemplo simple de lo que querés hacer, obvio que lo tenés que adaptar a tus necesidades. import tkinter as tk import time def cuenta_atras(): # inicio en 3 minutos for t in range(180, -1, -1): sf = "{:02d}:{:02d}".format(*divmod(t, 60)) time_str.set(sf) root.update() # espera 1 segundo time.sleep(1) root = tk.Tk() time_str = tk.StringVar() # esta es la parte del label label_font = ('helvetica', 40) tk.Label(root, textvariable=time_str, font=label_font, bg='white', fg='blue', relief='raised', bd=3).pack(fill='x', padx=5, pady=5) tk.Button(root, text='Count Start', command=cuenta_atras).pack() tk.Button(root, text='Count Stop', command=root.destroy).pack() root.mainloop()
Me ha servido, ¡gracias!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
PROGRAMA EN PYTHON
Scripting
|
D@V1D94
|
2
|
5,505
|
31 Enero 2012, 20:30 pm
por D@V1D94
|
|
|
PROBLEMA AL EJECUTAR UN PROGRAMA PYTHON UTILIZANDO (PHP) SHELL_EXEC
Scripting
|
Andrew98
|
1
|
3,439
|
3 Mayo 2013, 09:39 am
por adastra
|
|
|
{Python 3.4} Problema con programa matrices
Scripting
|
dj28
|
2
|
3,649
|
7 Julio 2014, 00:21 am
por Almapa
|
|
|
[Python + QT4] Problema con barra de navegador hecho con python y QT4
Scripting
|
darkweb64
|
3
|
3,397
|
18 Mayo 2015, 17:23 pm
por darkweb64
|
|
|
MOVIDO: Problema programa Python
Programación General
|
Eleкtro
|
0
|
1,625
|
6 Septiembre 2015, 22:43 pm
por Eleкtro
|
|