基於tkinter.messagebox實現簡易消息框、對話框 -- Python

近期搞了個Python腳本,需要幾個簡易的對話框,顯然引用PyQT、wxPython有些大動干戈,且這些庫搞進來打包成exe又大了不少,所有選擇使用自帶庫tkikter,功能其實很全,只怪自己之前修行不到家啊。。。so,簡單mark下

庫的導入不多說,走起,,,

import tkinter
import tkinter.messagebox

其中涉及到提示框如下:

tkinter.messagebox.showinfo(title=None, message=None)
tkinter.messagebox.showwarning(title=None, message=None)
tkinter.messagebox.showerror(title=None, message=None)

其中涉及到對話框如下:

tkinter.messagebox.askquestion(title=None, message=None)
tkinter.messagebox.askokcancel(title=None, message=None)
tkinter.messagebox.askyesno(title=None, message=None)
tkinter.messagebox.askretrycancel(title=None, message=None)
tkinter.messagebox.askyesnocancel(title=None, message=None)

看函數名稱其實也能猜個大概,其中 askyesnocancel有三個按鈕,666 ~~~

以askyesno爲例,簡單調用試試

txt=tkinter.messagebox.askyesno('提示', '要執行此操作嗎')

理論上兩個按鈕,點擊“是(Y)”返回True,點擊“否(N)”返回Fasle;實際調用對話功到時沒啥問題,然而出現瞭如下所示框分離,顯然不符合預期,一臉懵逼 。。。

後來查了下,得想辦法把主體框隱藏掉,所以簡單如下處理了下,對話框如下所示,看着也順眼多了。

其它提示框、對話框用法相同。

def message_askyesno():
    top = tkinter.Tk()  # *********
    top.withdraw()  # ****實現主窗口隱藏
    top.update()  # *********需要update一下
    txt=tkinter.messagebox.askyesno("提示","要執行此操作?")
    top.destroy()
    return txt

message_askyesno()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章