在特定时间增加整数随着时间的推移

时间:2018-04-04 17:57:13

标签: python

我试图创建一个可以作为"电视购物节目"在一个单独的窗口中。

我所拥有的是两个整数(x和y),它们同时增加,在这种情况下每5秒。随着值的增加,我需要同时显示一个计时器,它可以显示程序运行多长时间。我希望能够开始并暂停该计划 到目前为止,我有一个无限循环运行,其中值time.sleep(5)每5秒增加一次。我尝试以time.time()的形式实现计时器,并使其与增量一起使用。我也添加了按钮但不起作用。我使用tkinter作为指导。

我该如何让它发挥作用?有线程吗?

import time
from tkinter import *
import math

usage = 0
yearly = 0
cubik = 0
price = 0

root = Tk()
root.title("Usage of fluid")

root.geometry("300x400")

var = IntVar()
var1 = IntVar()
var2 = StringVar()
var3 = StringVar()
var4 = StringVar()

def update_timeText():
    current= time.strftime("%H:%M:%S")
    timeText.configure(text=current)
    root.after(1000, update_timeText)

def start():
    global state
    state = True

def pause():
    global state
    state = False

def exist():
    root.destroy()


frame = LabelFrame(root, text="Liter", font=30)
frame.pack(fill = "both", expand="yes")

l = Label(frame, textvariable=var, font=20)
l.pack(pady = 3)

frame2 = LabelFrame(root, text="price from use", font=30)
frame2.pack(fill = "both", expand= "yes")

l2 = Label(frame2, textvariable=var1, font=16)
l2.pack(side = LEFT)

l3 = Label(frame2, text="dollars", font=16)
l3.pack(side=LEFT)

frame3 = LabelFrame(root, text="yearly", font=30)
frame3.pack(fill = "both", expand="yes")

m3 = Label(frame3, textvariable=var2, font=16, wraplength=0)
m3.pack(side=TOP)

l4 = Label(frame3, text="Liter", font=16)
l4.pack(side=TOP)

l5 = Label(frame3, text="m3", font=16)
l5.pack(side=BOTTOM, fill="both")

m4 = Label(frame3, textvariable=var3, font=16, wraplength=0)
m4.pack(side=BOTTOM)

frame4 = LabelFrame(root, text='runtime', font=30)
frame4.pack(fill = "both", expand="yes")

timeText= Label(frame4, text="", font=16)
timeText.pack()

startButton = Button(frame4, text='Start', command=start)
startButton.pack()

pauseButton = Button(frame4, text='Pause', command=pause)
pauseButton.pack()

quitButton = Button(frame4, text='Quit', command=quit)
quitButton.pack()


while True:
    var.set(usage)
    usage += 300
    var1.set(round(price,1))
    price+= 10
    var2.set(yearly)
    var3.set(round(cubik,1))
    yearly += 300
    cubik += 0.1
    time.sleep(5)
    update_timeText()
    root.update_idletasks()

##update_timeText()
##root.mainloop()

0 个答案:

没有答案