近期搞了個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()