当前位置 : 主页 > 编程语言 > python >

Python基于tkinter.messagebox实现简易消息框、对话框

来源:互联网 收集:自由互联 发布时间:2021-06-25
库导入: import tkinterimport tkinter.messagebox 有关提示框: tkinter.messagebox.showinfo(title=None, message=None)tkinter.messagebox.showwarning(title=None, message=None)tkinter.messagebox.showerror(title=None, message=None) 其中

库导入:

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有三个按钮

以askyesno为例,简单调用试试:

mes=tkinter.messagebox.askyesno('提示', '要执行此操作吗')

理论上两个按钮,点击“是(Y)”返回True,点击“否(N)”返回Fasle;实际调用对话功能没啥问题,然而出现了如下所示框分离……

后来查了下,得想办法把主体框隐藏掉,所以简单如下处理了下,对话框如下所示,看着也顺眼多了。其它提示框、对话框用法相同。

def message_askokcancel(title, info):
    top = tkinter.Tk()
    top.withdraw()
    top.update()
    mes = tkinter.messagebox.askokcancel(title, info)
    top.destroy()
    return mes
mes = message_askokcancel("提示","要执行此操作?")
if mes:
    print("已执行\n")

结果:

网友评论