下面,我创建了一个代码来跟踪正在运行的人。目前,我创建的按钮跟踪圈数和时间,但不在GUI窗口上。我想知道如何从GUI窗口的代码显示数据。
from Tkinter import *
import time
laps=[0]
gui=Tk()
gui.geometry("200x100")
gui.title("lapping")
def afterbutton():
label_1=Label(gui,text=end())
def end():
end = time.time()
elapsed = end - start
laps[0]+=1
print "%s seconds" % (elapsed)
print "%s lap(s)" % (laps)
starting = raw_input("start? (s to start)")
if starting == "s":
start = time.time()
button1=Button(gui,command=afterbutton,text="lap")
button1.grid()
button1.pack()
gui.mainloop()
答案 0 :(得分:0)
您需要在创建按钮的同时创建标签。您需要将其放入网格并打包,就像使用按钮一样。然后,当单击该按钮时,您所要做的就是更改标签的文本。这就是它的样子:
# python 3
from Tkinter import *
import time
laps=[0]
gui=Tk()
gui.geometry("200x100")
gui.title("lapping")
def end():
end = time.time()
elapsed = end - start
laps[0] += 1
s = "%s seconds %s laps" % (elapsed,laps)
label1['text'] = s
print("%s seconds" % (elapsed))
print("%s lap(s)" % (laps))
starting = raw_input("start? (s to start)")
if starting == "s":
start = time.time()
button1 = Button(gui, command=end, text="lap")
button1.grid()
button1.pack()
label1 = Label(gui)
label1.grid()
label1.pack()
gui.mainloop()
函数afterbutton
消失了;所有工作都由end()
完成。我保留了你的大部分程序,但是我使用的是py3,所以print是一个函数而不是一个语句。你必须为py2修复它。标签的文本由:
label1['text'] = s
当你第一次看到它时,这是一种有点奇怪的语法。
顺便说一句,我不明白为什么你使用单元素列表来代替一个简单的变量。