这是我的密码:
from Tkinter import *
import tkMessageBox
import tkSimpleDialog
def blank(row, column):
blank = Label(text=" ")
blank.grid(row=row, column=column)
def prtent():
distEnt.getint()
print distEnt
root = Tk()
#title
root.title("Trip Time Calculator")
label = Label(text="Trip Time Calculator", font=50)
label.grid(columnspan=50)
blank(2, 0)
blank(3, 0)
#distance
distLabel = Label(text="What is your distance?")
distLabel.grid(row=4, column=0)
distEnt = Entry()
distEnt.grid(row=4, column=1)
blank(5, 0)
#speed
speedLabel = Label(text="What is your speed?")
speedLabel.grid(row=6, column=0)
distEnt = Entry()
distEnt.grid(row=6, column=1)
blank(7, 0)
#test button
button = Button(text="Done", command=prtent)
button.grid(row=8, column=0)
root.mainloop()
我的问题是,当我在GUI的一个字段中输入一个数字时,控制台中返回的所有数字都是“.42880656”。我要做的应用程序是,您可以输入距离和速度,并在Python2.7中获得大致的ETA。你知道吗
这是你的问题。。。
distEnt
是Entry(),不是数字。我想应该是。。。你知道吗再解释一下。。。你知道吗
Entry()distEnt是屏幕上显示的实际组件。把它取为整数没有任何意义——它是一个文本框。它有一个有用的函数.getint(),返回格式化为整数的文本框的内容。如果您想对这些内容做些什么,可以获取该数字并将其放入变量中,然后使用该变量来执行业务逻辑。如果将该变量设置为其他值,则会丢失对GUI中文本框的引用。你知道吗
你实际上看到的错误是Python的东西。您可以从下一个作用域继承变量,而无需执行任何操作。。。你知道吗
会有用的。但是,如果您尝试将赋值给该变量,它将假定您一定犯了错误(为什么您尝试在函数中改变全局状态?!?)并抛出一个错误。在这种情况下,您必须用global关键字继承全局变量才能告诉解释器是的,您的意思是这样的。你知道吗
还有一点-如果你在变异之前给它赋值,你不会得到异常。。。因为函数范围中的变量名是一个全新的局部变量,与全局变量没有关系。只有在变异前尝试使用全局变量时,才会出现异常。你知道吗
相关问题 更多 >
编程相关推荐