python - TkInter 的 Python 错误和异常
问题描述
我正在尝试编写一个 TkInter GUI。我想创建一个只允许小于 1000 的浮点数的条目。
我正在使用try
andexcept
方法,我的问题是由 try 方法测试的代码没有执行,而是针对 ValueErrors 进行测试。
有没有办法在尝试和异常之间执行代码?
谢谢
from Tkinter import *
root = Tk()
class MyOwnEntry:
def __init__(self):
self.variable = StringVar()
self.variable.trace("w", self.Validation)
self.MyOwnEntry = Entry(root, textvariable = self.variable)
self.MyOwnEntry.pack()
def Validation(self,*args):
self.newvar = self.variable.get()
try:
if isinstance(float(self.newvar),float):
return self.newvar
elif float(self.newvar)<1000:
self.newvar = self.newvar[:-1]
self.variable.set(self.newvar)
else:
self.newvar = self.newvar[:-1]
self.variable.set(self.newvar)
except ValueError:
self.newvar = self.newvar[:-1]
self.variable.set(self.newvar)
Input1 = MyOwnEntry()
root.mainloop()
解决方案
我想创建一个只允许小于 1000 的浮点数的条目。
如果 ^ 是您想要的,您可能不需要第一个条件,因为它只会self.newvar
在值为 float 时返回,但您还需要检查它是否小于 1000
def Validation(self, *args):
self.newvar = self.variable.get()
try:
if isinstance(self.newvar,float) and self.newvar < 1000:
self.newvar = self.newvar[:-1]
self.variable.set(self.newvar)
else:
self.newvar = self.newvar[:-1]
self.variable.set(self.newvar)
except ValueError:
self.newvar = self.newvar[:-1]
self.variable.set(self.newvar)
推荐阅读
- php - 将 WordPress 用户电子邮件而不是帐单电子邮件设置为 WooCommerce 结帐字段的默认值
- python - 使用自定义 S3 对象 lambda 服务的 boto3 禁止请求
- reactjs - 用 react.js 创建钢琴,使用状态不清楚
- apache-spark - 为什么我的 delta Lake 表没有收集统计信息(最小值、最大值)?
- c - 如何让 bash/windows 识别 c/库
- progressive-web-apps - 如何将 TWA 用户重定向到选定的起始域?
- elasticsearch - 无痛无法访问对象内的数组
- sql-server - IIS 无法运行查询?
- javascript - 当我点击不同的按钮时如何显示另一个图像?
- bash - bash 脚本错误:无法与其他选项结合使用