如何使按钮打印出某些文字? - Tkinter

时间:2016-05-10 01:41:45

标签: python user-interface tkinter

下面,我创建了一个代码来跟踪正在运行的人。目前,我创建的按钮跟踪圈数和时间,但不在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()

1 个答案:

答案 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

当你第一次看到它时,这是一种有点奇怪的语法。

顺便说一句,我不明白为什么你使用单元素列表来代替一个简单的变量。