📜  Python Tkinter消息框(1)

📅  最后修改于: 2023-12-03 15:19:01.811000             🧑  作者: Mango

Python Tkinter 消息框

Python Tkinter中的消息框是用于向用户发出提示,警告或错误消息的常见方式。消息框提供了一种简单的方法来打开弹出窗口并显示消息,通常用于交互式图形用户界面。

1. 常见的消息框类型
1.1. showinfo

使用 showinfo() 函数显示一条普通的信息消息框。

from tkinter import messagebox

messagebox.showinfo(title="Information", message="This is an information message!")

显示结果如下:

showinfo

1.2. showwarning

使用 showwarning() 函数显示一条警告消息框。

from tkinter import messagebox

messagebox.showwarning(title="Warning", message="This is a warning message!")

显示结果如下:

showwarning

1.3. showerror

使用 showerror() 函数显示一条错误消息框。

from tkinter import messagebox

messagebox.showerror(title="Error", message="This is an error message!")

显示结果如下:

showerror

1.4. askquestion

使用 askquestion() 函数显示带有两个按钮(“是”和“否”)的消息框。该函数返回用户的响应('yes'或'no')。

from tkinter import messagebox

response = messagebox.askquestion(title="Question", message="Do you want to continue?")

if response == 'yes':
    print("User clicked Yes.")
else:
    print("User clicked No.")

如果用户点击 “Yes” 按钮,输出将是:

User clicked Yes.

如果用户点击 “No” 按钮,输出将是:

User clicked No.

显示结果如下:

askquestion

1.5. askokcancel

使用 askokcancel() 函数显示带有两个按钮的消息框(“确定”和“取消”)。该函数返回用户的响应(True或False)。

from tkinter import messagebox

response = messagebox.askokcancel(title="Question", message="Do you want to continue?")

if response == True:
    print("User clicked OK.")
else:
    print("User clicked Cancel.")

如果用户点击 “OK” 按钮,输出将是:

User clicked OK.

如果用户点击 “Cancel” 按钮,输出将是:

User clicked Cancel.

显示结果如下:

askokcancel

1.6. askyesno

使用 askyesno() 函数显示带有两个按钮(“是”和“否”)的消息框。该函数返回用户的响应(True或False)。

from tkinter import messagebox

response = messagebox.askyesno(title="Question", message="Do you want to continue?")

if response == True:
    print("User clicked Yes.")
else:
    print("User clicked No.")

如果用户点击 “Yes” 按钮,输出将是:

User clicked Yes.

如果用户点击 “No” 按钮,输出将是:

User clicked No.

显示结果如下:

askyesno

2. 消息框的参数

Python Tkinter中的消息框可以使用以下参数进行自定义:

2.1. title

用于设置消息框的标题。

from tkinter import messagebox

messagebox.showinfo(title="My Title", message="This is a custom title message!")

显示结果如下:

custom title

2.2. message

用于显示消息框中的消息内容。

from tkinter import messagebox

messagebox.showinfo(title="Information", message="This is a custom message!")

显示结果如下:

custom message

2.3. icon

用于设置消息框显示的图标,可以使用以下四个选项:

  • 'error': 显示错误图标
  • 'question': 显示问号图标
  • 'warning': 显示警告图标
  • 'info': 显示信息图标
from tkinter import messagebox

messagebox.showerror(title="Error", message="This is an error message!", icon='warning')

显示结果如下:

custom icon

2.4. default

用于设置默认按钮的焦点。默认值为0,表示按Enter键时,焦点将放在消息框的第一个按钮上。

from tkinter import messagebox

response = messagebox.askquestion(title="Question", message="Do you want to continue?", default='no')

此时,消息框的默认按钮为 “No”,如果用户输入一次Enter,则默认选择 “No” 按钮。

显示结果如下:

custom default

2.5. parent

用于指定消息框的父窗口。

import tkinter as tk
from tkinter import messagebox

root = tk.Tk()

def show_message_box():
    messagebox.showinfo(parent=root, title="Information", message="This is a message box!")

button = tk.Button(root, text="Show Message Box", command=show_message_box)
button.pack()

root.mainloop()

此时,弹出的消息框将会在主窗口中心出现;如果将 parent 设置为 None,则会将消息框放置在屏幕中心。

显示结果如下:

custom parent

结论

Python Tkinter中的消息框是一种灵活的工具,可以通过它向用户弹出各种各样的提示、警告和错误消息。在编写交互式GUI应用程序时,使用这些消息框可以提高应用程序的用户友好性和交互性。