亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python Tkinter - 不確定如何使用 messagebox.askretr

Python Tkinter - 不確定如何使用 messagebox.askretr

HUWWW 2021-06-04 14:23:20
我有一個正在處理的函數,它根據輸入的關鍵字顯示不同的數字,并決定使用 simpledialog.askstring() 來顯示一個消息框,我可以在其中輸入我的關鍵字。當我輸入錯誤的關鍵字時,我想顯示一個消息框,詢問我是否要重試并重新輸入關鍵字,但我似乎無法讓它為我工作。到目前為止我的代碼:from tkinter import Tkfrom tkinter import simpledialog, messageboxdef display_figure():    application_window = Tk()    application_window.withdraw()    answer = simpledialog.askstring("Input", "What figure do you want to look at: 'Fig1', 'Fig2', 'Fig3', or 'Fig4'?", parent=application_window)    if   answer == 'Fig1': (Code to display Fig1)    elif answer == 'Fig2': (Code to display Fig2)    elif answer == 'Fig3': (Code to display Fig3)    elif answer == 'Fig4': (Code to display Fig4)    else: messagebox.askretrycancel("Question", "Error: Not a recognized keyword. Do you want to try again?")當單擊生成的消息框中的“重試”按鈕時,我不確定如何循環回到上一個問題以再次詢問關鍵字,因此將不勝感激。
查看完整描述

1 回答

?
MMMHUHU

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()


查看完整回答
反對 回復 2021-06-08
  • 1 回答
  • 0 關注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號