我遇到单击按钮时产生的IF语句有问题。 我到目前为止的代码如下所示,基本上我需要的是按下按钮后它会询问“你确定要更新吗?”的问题。这很好用。然后用户单击是或否。否关闭弹出框(正常工作),如果用户单击是,则检查该条目是否为空。如果是保留原始变量(工作正常),它还会检查条目是否为浮点数,如果不是则返回错误消息,即使它是浮点数,也会返回错误消息,我希望它做的是,如果它是一个浮点数然后使用else语句应该做的输入值。但它不断带回消息框错误。
The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths
也许Psuedocode可能有所帮助:
按钮点击:
问题 没有关闭窗口 是=如果进入是空白,则使用旧变量 或ENTRY = FLOAT然后使用新的变量 如果它是任何其他类型,那么显示错误消息框,'错误的类型'
如果这是问题,我将条目设置为StringVar()。
由于
答案 0 :(得分:2)
在他们的评论中,hiro protagonist建议a
可能永远是str
。我同意这可能是这种情况(虽然我不确定)。这是构建代码以使用float()
解析a
之外的值的一种方法:
def updatetimings():
ask = messagebox.askquestion('Validation','Are you sure you want to update timings?')
if ask == 'yes':
a = newv5c.get()
if a == '':
e1 = v5c_timing
else:
try:
# Try parsing a as a float. If it works, store the result in e1.
e1 = float(a)
except ValueError:
# If we're not able to parse a as a float, then show an error message.
messagebox.showinfo('Error','Please enter decimal numbers only')
我希望这有帮助!