如果用户在 tkinter askstring 框上单击 OK 而不输入任何内容,我希望弹出一个警告消息框,然后向用户显示另一个 askstring 框。在下面的代码中,我尝试通过递归调用来做到这一点。我看到以下两种行为:
- 用户在 askstring 的第一个实例的文本字段中输入数据,单击 OK。该函数返回输入的值。
- 用户将 askstring 的第一个实例的文本字段留空,单击 OK,响应警告消息框并在第二个askstring 实例中输入数据。该函数返回无。
这里发生了什么?
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)