python中的Tkinter文本输入验证

2024-09-30 14:35:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个简单的程序,要求用户的姓名和年龄。然后程序将从文本框中获取详细信息,并计算出5年后它们的年龄。在

界面很好。这是我很难接受的验证。当用户输入一个字母而不是一个数字时,程序会显示一条错误消息,但无论如何都会继续运行。我尝试过使用while True:循环,但这似乎只是使程序崩溃。在

以下是我已经写的:

def calculate():
    name = (textboxName.get())
    age = (textboxAge.get())

    if age.isalpha():
        tkinter.messagebox.showinfo("Error", "The Age is invalid")
        textboxAge.delete("0","end")

    newAge = int(age)+5
    print("Hello",name)
    print("In 5 years time you will be",newAge)

我看了其他一些教程,但它们有点混乱。我将通过在中添加另一个elif和下面的代码来扩展此功能

^{pr2}$

但这不喜欢它是字符串而不是整数。在

  • 检查文本框中是否输入了数字的最佳方法是什么?在

Tags: 用户name程序ageget界面字母详细信息
1条回答
网友
1楼 · 发布于 2024-09-30 14:35:56
def calculate():
    name = (textboxName.get())
    age = (textboxAge.get())

    try:
        newAge = int(age)+5

    except ValueError:
        tkinter.messagebox.showinfo("Error", "The Intended Reading Age is invalid")
        textboxAge.delete("0","end")
        return

    print("Hello",name)
    print("In 5 years time you will be ",newAge)
    # ...

如果在try-部分的某个地方发生错误,python不会崩溃,而是跳到except部分。关键步骤是将age转换为整数。如果是字符串,则抛出ValueError。在这种情况下,将显示消息框并删除文本框中的文本。return然后将停止该函数,因此它的其余部分将不被处理。如果try-部分中没有发生任何事情,那么except将被跳过。在

相关问题 更多 >