23-Tkinter 组件-messageBox消息框

messageBox是tkinter库中用于创建各种类型对话框的功能,如显示信息、警告和错误,以及进行用户询问。这些对话框在软件或网页交互设计中用于提供清晰的界面逻辑。文章提供了showinfo、showwarning、showerror等方法的使用示例,并展示了如何通过按钮触发这些对话框。此外,还包含了askquestion、askokcancel等询问类型的对话框,用于获取用户确认或选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

messageBox消息框

messageBox:消息框,用于显示你应用程序的消息框。其实这里的messageBox就是我们平时看到的弹窗。  在比如像软件或网页交互界面等,有不同的界面逻辑层级和功能区域划分时可以用到,让交互界面逻辑更加清晰。

showinfo

showinfo(title: Optional[str] = None, message: Optional[str] = None, **options: Any) -> str
显示信息消息

showwarning

showwarning(title: Optional[str] = None, message: Optional[str] = None, **options: Any) -> str
显示警告信息

showerror

showerror(title: Optional[str] = None, message: Optional[str] = None, **options: Any) -> str
显示错误信息

askquestion

askquestion(title: Optional[str] = None, message: Optional[str] = None, **options: Any) -> str
显示、询问选择是否对话窗,返回’yes’, ‘no’:

askokcancel

askokcancel(title: Optional[str] = None, message: Optional[str] = None, **options: Any) -> bool
询问是否应继续操作; 如果选择是则返回 true

askyesno

askyesno(title: Optional[str] = None, message: Optional[str] = None, **options: Any) -> bool
问一个问题; 如果答案是肯定的,则返回 true

askyesnocancel

askyesnocancel(title: Optional[str] = None, message: Optional[str] = None, **options: Any) -> Optional[bool]
问一个问题; 如果答案是肯定的,则返回 true,如果取消则返回 None。

askretrycancel

askretrycancel(title: Optional[str] = None, message: Optional[str] = None, **options: Any) -> bool
询问是否应重试操作; 如果答案是肯定的,则返回 true

  • 首先需要定义一个触发功能,来触发这个弹窗,如button按钮通过触发功能,调用messagebox,点击button按钮就会弹出提示对话框。下面给出messagebox提示信息的几种形式:
tkinter.messagebox.showinfo(title='Hi', message='你好!')            # 提示信息对话窗
tkinter.messagebox.showwarning(title='Hi', message='有警告!')       # 提出警告对话窗
tkinter.messagebox.showerror(title='Hi', message='出错了!')         # 提出错误对话窗

print(tkinter.messagebox.askquestion(title='Hi', message='你好!'))  # 询问选择对话窗return 'yes', 'no'
print(tkinter.messagebox.askyesno(title='Hi', message='你好!'))     # return 'True', 'False'
print(tkinter.messagebox.askokcancel(title='Hi', message='你好!'))  # return 'True', 'False'

示例代码:

# coding = utf-8
# File date: Hi_2021/12/29 16:50
# File_name: 10_messagebox对话框.py
from tkinter import *
from tkinter import messagebox


class Application(Frame):
    def __init__(self, master=None):
        # 初始化并调用父类初始化
        super().__init__(master)
        self.master = master
        self.pack()

        self.create_widget()

    def create_widget(self):
        """创建组件"""
        showinfo_button = Button(self, text="showinfo", command=Application.a_showinfo)
        showwarning_button = Button(self, text="showwarning", command=Application.a_showwarning)
        showerror_button = Button(self, text="showerror", command=Application.a_showerror)
        askquestion_button = Button(self, text="askquestion", command=Application.a_askquestion)
        askokcancel_button = Button(self, text="askokcancel", command=Application.a_askokcancel)
        askyesno_button = Button(self, text="askyesno", command=Application.a_askyesno)
        askyesnocancel_button = Button(self, text="askyesnocancel", command=Application.a_askyesnocancel)
        a_skretrycancel_button = Button(self, text="askretrucancel", command=Application.a_skretrycancel)

        showinfo_button.grid(row=1, pady=10, sticky="s")
        showwarning_button.grid(row=2, pady=10, sticky="s")
        showerror_button.grid(row=3, pady=10, sticky="s")
        askquestion_button.grid(row=4, pady=10, sticky="s")
        askokcancel_button.grid(row=5, pady=10, sticky="s")
        askyesno_button.grid(row=6, pady=10, sticky="s")
        askyesnocancel_button.grid(row=7, pady=10, sticky="s")
        a_skretrycancel_button.grid(row=8, pady=10, sticky="s")

    @staticmethod
    def a_showinfo():
        messagebox.showinfo("信息提示框", "显示信息消息")

    @staticmethod
    def a_showwarning():
        messagebox.showwarning("警告信息框", "显示警告信息")

    @staticmethod
    def a_showerror():
        messagebox.showerror("错误信息框", "显示错误信息")

    @staticmethod
    def a_askquestion():
        result = messagebox.askquestion("询问对话框", "显示询问选择是否对话窗,返回'yes', 'no'")
        messagebox.showinfo("返回结果提示框", f"返回结果:{result}")
        print(f"返回结果:{result}")

    @staticmethod
    def a_askokcancel():
        result = messagebox.askokcancel("是否对话框", "显示询问选择是否对话窗,返回true、false")
        messagebox.showinfo("返回结果提示框", f"返回结果:{result}")
        print(f"返回结果:{result}")

    @staticmethod
    def a_askyesnocancel():
        result = messagebox.askyesnocancel("询问对话框", "问一个问题; 如果答案是肯定的,则返回 true")
        messagebox.showinfo("返回结果提示框", f"返回结果:{result}")
        print(f"返回结果:{result}")

    @staticmethod
    def a_askyesno():
        result = messagebox.askyesno("询问对话框", "问一个问题; 如果答案是肯定的,则返回 true")
        messagebox.showinfo("返回结果提示框", f"返回结果:{result}")
        print(f"返回结果:{result}")

    @staticmethod
    def a_skretrycancel():
        result = messagebox.askretrycancel("重试对话框", "询问是否应重试操作; 如果答案是肯定的,则返回 true")
        messagebox.showinfo("返回结果提示框", f"返回结果:{result}")
        print(f"返回结果:{result}")


if __name__ == '__main__':
    root = Tk()
    root.geometry("300x400")
    root.title("10_对话框")
    app = Application(master=root)

    root.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

士别三日,当挖目相待

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值