【发布时间】:2020-01-28 17:28:30
【问题描述】:
我在使用 tkinter 时遇到错误,我无法理解我做错了什么导致了这个错误。
这是我的代码:
from tkinter import *
windows = Tk()
frame = Frame(windows,height = 200 ,width = 700)
heading = Label(frame,text="COST CALCULATOR").grid(row = 0,column = 1,columnspan =7)
frame.pack()
def area(length,breadth):
global area
ftom(length,breadth)
area = length*breadth
return area
t1 = Label(frame,text = "enter the length:").grid(row = 1 ,column = 0)
e1 = Entry(frame)
e1.grid(row =1,column = 1)
ln = e1.get()
e1.delete(0,END)
t2 = Label(frame,text = "enter the breadth:").grid(row = 2 ,column = 0)
e2 = Entry(frame)
e2.grid(row = 2,column = 1)
br = e2.get()
e2.delete(0,END)
t3 = Label(frame,text = "total area covered").grid(row = 3 ,column = 0)
ln = int(ln)
br = int(br)
ar = area(ln,br)
e3 = Label(frame,text =f"{ar}")
e3.grid(row = 3 , column = 1)
windows.mainloop()
这是我得到的错误:
Traceback (most recent call last):
File "C:/Users/Allen Alex Abraham/allensworld/allensworld/trial2.py", line 55, in <module>
ln = int(ln)
ValueError: **invalid literal for int() with base 10: ''**
【问题讨论】:
-
错误告诉您您正在尝试将空字符串转换为整数,这显然是不可能的。
ln不是您所假设的,因为您在创建条目小部件后的一毫秒内得到它,远在用户有机会输入任何内容之前。 -
Entry()不像input()那样工作 - 它不等待用户的数据,所以.get()给你空字符串 - 使用Button()运行从 @987654328 获取数据的代码@ -
您需要将
get()代码放在函数内,然后添加一个调用该函数的按钮。 -
嘿,对你的问题解释几句就好了。可能还有其他人有同样的问题。从代码复制/粘贴,编译器输出不被认为是一个有效的问题。
-
你在函数中使用的
ftom是什么?
标签: python python-3.x tkinter tkinter-entry tkinter-layout