我正在尝试使用与计时器一起使用的动画。当时间结束时,动画应该同时完成。我正在考虑做手机中的电池条。这就是为什么我在另一个窗口中有一个绿色矩形,但我不知道如何做绿色变黑或矩形用计时器慢慢排空。如果您对动画有其他建议,可以这样做。感谢
from tkinter import *
import math
import time
aux=False
segundo=60
Ventana1 = Tk()
Ventana1.title("Timer")
Ventana1.geometry("500x350+100+100")
def paso():
global aux
global segundo
if aux:
segundo -= 1
tiempo["text"] = segundo
tiempo.after(1000, paso)
if segundo==0:
aux=False
tiempo.configure(text=segundo, fg="blue")
if segundo<21:
tiempo.configure(text=segundo, fg="red")
def inicio ():
global aux
global segundo
segundo=segundo
if aux:
pass
else:
aux=True
paso()
tiempo.configure(text=segundo, fg="blue")
def pausa ():
global aux, segundo
aux=False
tiempo.configure(text=segundo, fg="blue")
def reset ():
global aux
global segundo
segundo=int(Entry.get(Segunditos)) + 60*int(Entry.get(Minuticos))
aux=False
tiempo["text"] = segundo
tiempo.configure(text=segundo, fg="blue")
tiempo = Label(Ventana1, text=segundo, font=("calibri", 200))
tiempo.pack()
Button(Ventana1, text="Arranquelo", command= inicio).place(x=120, y=220)#Button start
Button(Ventana1, text= "Parelo", command= pausa).place(x=200, y=220)#button pause
Button(Ventana1, text= "Acabelo", command= reset).place(x=300, y=220)#button reset
MinAviso=Label(Ventana1, text="Minutos").place(x=125, y=260)
SegAviso=Label(Ventana1, text="Segundos").place(x=305, y=260)
Minuticos=Entry(Ventana1)
Minuticos.place(x=70, y=290)
Segunditos=Entry(Ventana1)
Segunditos.place(x=250, y=290)
from tkinter import *
Ventana2 = Tk()
Canvas = Canvas(Ventana2, width=2000, height=1500)
Canvas.pack()
Canvas.create_rectangle(200, 200, 1000, 300, fill="green")
mainloop()
#Ventana1.mainloop()
答案 0 :(得分:0)
最大的问题是您正在创建Tk
的两个实例。 Tkinter的设计并非如此。如果需要浮动窗口,请创建Toplevel
。
接下来,您需要保存对要在画布上绘制的矩形的引用。
Canvas = Canvas(Ventana2, ...)
rect = Canvas.create_rectangle(...)
当您的计时器运行时,您可以使用该引用修改对象。
def paso():
...
if aux:
...
Canvas.itemconfigure(rect, ...)