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与其说是程序将其转换为整数的特定时刻,不如说是程序将获得该值的特定时刻。你可以用它做任何你想做的事。另一个问题是,在程序中,用户无法在条目中输入值以获取该值。