首页 > 解决方案 > 按下按钮尝试 except 语句不起作用

问题描述

我使用 tKinter 库用 Python 编写了一段简单的代码。我想使用带有tryand的简单函数来检查用户输入是否是数字except ValueError。出于某种原因,它只显示输入不是数字时应该打印的文本。按下按钮后应该出现的消息存储在feedback变量中所以问题是:我怎样才能做到这一点,所以默认情况下它不会在屏幕上打印“这不是数字”,而是一个空的一旦按下保存按钮,屏幕就会显示正确的文本。

def number_input():
    root=Tk()
    root.geometry(400x400)
    
    rounds=Entry(root)
    
    feedback=Label(root, text='')
    feedback.place(relx=0.5, rely=0.8, anchor=CENTER)
    
    save=Button(root, height=1, width=10, text='save', command=number())
    save.place(relx=0.5, rely=0.72, anchor=CENTER)

这是tryexcept部分的功能:

def number():
    try:
        int(rounds.get())
        feedback.config(text='This is a number')
    except ValueError:
        feedback.config(text='This is not a number')

标签: pythontkinter

解决方案


你的代码:

save = Button(..., command=number())

这会调用该number函数并将命令设置为该函数的结果,即None. 你想做的是:

save = Button(..., command=number)

这会将函数传递给 tkinter,以便在您按下按钮时调用它。


推荐阅读