python - 按下按钮尝试 except 语句不起作用
问题描述
我使用 tKinter 库用 Python 编写了一段简单的代码。我想使用带有try
and的简单函数来检查用户输入是否是数字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)
这是try
和except
部分的功能:
def number():
try:
int(rounds.get())
feedback.config(text='This is a number')
except ValueError:
feedback.config(text='This is not a number')
解决方案
你的代码:
save = Button(..., command=number())
这会调用该number
函数并将命令设置为该函数的结果,即None
. 你想做的是:
save = Button(..., command=number)
这会将函数传递给 tkinter,以便在您按下按钮时调用它。
推荐阅读
- c# - Net Core 自动审查未优化的实体框架查询
- r - 您如何将项目拼凑在一起,以免丢失索引?
- c# - TObase64String 未编码我的访问令牌,导致 401 未经授权
- docker - 无法停止、终止或删除 Docker 容器
- python - AttributeError:“tensorflow.python.framework.ops.EagerTensor”对象没有属性“decode”
- android - 找不到 GeneratedAppGlideModule 错误
- c# - 使用 C# 调用 POST 请求调用。将 PowerShell 代码转换为 CSharp 代码
- python - kubernetes Python API 客户端:执行完整的 yaml 文件
- python-3.x - 如何获取数据框中一列矩阵的矩阵列的平均值?
- c# - 是否可以在不引发异常的情况下检查 url 处的文件是否存在?