Python 从tkinter中的条目小部件获取整数值
我写了一些简单的代码来描述我的问题:我想从一个条目中获取一个整数值,以便以后使用。我还尝试使用一个旋转框。这是我的密码:Python 从tkinter中的条目小部件获取整数值,python,tkinter,integer,tkinter-entry,Python,Tkinter,Integer,Tkinter Entry,我写了一些简单的代码来描述我的问题:我想从一个条目中获取一个整数值,以便以后使用。我还尝试使用一个旋转框。这是我的密码: 从tkinter导入* win=Tk() win.geometry('300x200')) e=入口(宽度=10) e、 包() y=int(即get()) 打印(y*2) 我总是会遇到同样的错误: y=int(e.get()) ValueError:基数为10''的int()的文本无效 我不知道为什么会这样 ValueError:基数为10''的int()的文本无效 表示
从tkinter导入*
win=Tk()
win.geometry('300x200'))
e=入口(宽度=10)
e、 包()
y=int(即get())
打印(y*2)
我总是会遇到同样的错误:
y=int(e.get())ValueError:基数为10''的int()的文本无效 我不知道为什么会这样 ValueError:基数为10''的int()的文本无效 表示您正在尝试将字符串“”转换为整数。这当然是无效的。尝试将空字符串转换为整数的原因是不允许在条目中放置任何值 允许这种情况发生的一个好方法是使用一个按钮,它调用一个函数来获取条目中的值并打印它。此外,您还缺少代码末尾需要的行
win.mainloop()
下面是您可能需要的示例代码:
从tkinter导入*
win=Tk()
win.geometry('300x200'))
def printVal():
y=int(即get())
打印(y*2)
e=入口(宽度=10)
e、 包()
b=按钮(text=“按我打印e中的值”)
b、 包()
win.mainloop()
如果条目中的值不是有效的整数,则此代码仍将返回错误,因此如果您希望它具有健壮性,则必须对其进行处理。例如,您的示例中存在几个问题。在哪个时刻,您试图从条目中获取价值 您的代码应该如下所示:
from tkinter import *
def validate(value):
print (value)
try:
if value:
return int(value)
except:
return None
def calculate():
x = e1.get()
x_validate = validate(x)
if x_validate == None:
e1.delete(0, END)
e1.insert(0, 'you need to enter integer')
Label1.config(text='')
else:
result = x_validate*2
Label1.config(text=result)
win = Tk()
e1 = Entry(win)
e1.grid(row=0, column=0)
Button(win,text='Calculate', command = calculate).grid(row=0, column=1)
Label(win,text='Result').grid(row=1, column=0)
Label1 = Label(win)
Label1.grid(row=1, column=1)
win.mainloop()
输入整数并按计算的示例
输入string并按calculate时的示例
例如,您的示例中有几个问题。在哪一时刻,您试图从条目中获取值?每次我写入值时。或者,当我点击enter时,非常感谢兄弟,所以问题是我需要一个特殊的时刻,程序会把它变成一个整数?您的按钮缺少“`command=printVal`btw”。@RayenSayadi与其说是程序将其转换为整数的特定时刻,不如说是程序将获得该值的特定时刻。你可以用它做任何你想做的事。另一个问题是,在程序中,用户无法在条目中输入值以获取该值。