如何验证tkinter askstring条目



如果用户在没有输入任何内容的情况下单击tkinter askstring框上的"确定",我希望弹出一个警告消息框,然后向用户显示另一个askstring框。在下面的代码中,我试图通过递归调用来实现这一点。我看到以下两种行为:

  1. 用户在askstring的第一个实例的文本字段中输入数据,单击"确定"。该函数返回输入的值
  2. 用户将第一个askstring实例的文本字段留空,单击"确定",响应警告消息框,第二个askstring实例中输入数据。函数返回None

这里发生了什么?

import tkinter as tk
from tkinter import simpledialog
from tkinter import messagebox
def entry():
temp=simpledialog.askstring("","")
if len(temp) == 0:
messagebox.showwarning("Oh oh","you gotta enter something here")
entry()
else:
return(temp)
y = entry()
print (y)


多亏了acw1668,我将代码改为while循环,而不是递归,现在得到了所需的结果。这是我的解决方案:

import tkinter as tk
from tkinter import simpledialog
from tkinter import messagebox
def entry():
temp=simpledialog.askstring("","")
while len(temp) == 0:
messagebox.showwarning("Oh oh","you gotta 
enter something here")
temp = simpledialog.askstring("", "")
else:
return temp
y = entry()
print (y)

相关内容

  • 没有找到相关文章

最新更新