1 回答

TA貢獻1834條經驗 獲得超8個贊
askretrycancel總是返回布爾值。按下時重試返回True,False按下時取消。您將需要使用while循環并且在答案正確或Cancel按下之前不要破壞它。這是代碼:
from tkinter import Tk
from tkinter import simpledialog, messagebox
def display_figure():
application_window = Tk()
application_window.withdraw()
while True:
answer = simpledialog.askstring("Input", "What figure do you want to look at: 'Fig1', 'Fig2', 'Fig3', or 'Fig4'?", parent=application_window)
if answer == 'Fig1': print(answer);break
elif answer == 'Fig2': print(answer);break
elif answer == 'Fig3': print(answer);break
elif answer == 'Fig4': print(answer);break
else:
if messagebox.askretrycancel("Question", "Error: Not a recognized keyword. Do you want to try again?") == False:
break
display_figure()
添加回答
舉報