python中的tkinter库弹窗messagebox详解

1. tkinter简介

python的GUI库有很多,比如PyQt、wxPython等,但其中一个比较简单易学的是Tkinter。Tkinter是Python自带的、用于采用GUI编程的标准Python库。Tkinter为我们提供了创建图形用户界面(GUI)应用程序所需的各种组件。

import tkinter as tk

root = tk.Tk()

root.mainloop()

以上是Tkinter的最小示例,它将创建一个简单的窗口。

在Tkinter中,我们可以使用几个特定的命令来添加不同类型的小部件,例如消息框、按钮、文本框等等,但消息框可以帮助我们在Gui应用程序中显示消息或提醒。

2. Tkinter库弹窗之messagebox

Python Tkinter库的其中一个显示弹出消息框的方式是messagebox。 一个消息框是一种特殊的小部件,它可以显示一些文本,并在其中提供一个或多个按钮来完成操作,例如确认、取消、是或否。

tinker messagebox 由Tkinter库提供,可以使用以下import语句引入:

from tkinter import messagebox 

2.1 messagebox常用方法

messagebox库包含以下函数:

showinfo(): 显示有关应用程序信息的消息框。

showwarning(): 显示程序的警告。

showerror(): 显示应用程序错误。

askquestion(): 显示一个询问信息,有Yes和No两个选项。

askokcancel(): 显示一个询问信息,有Ok和Cancel两个选项。

askyesno():显示一个询问信息,有Yes和No两个选项。

askretrycancel(): 显示一个询问信息,有重试和取消两个选项。

3. messagebox示例

下面是一个示例,用于在消息框中获取用户输入的名字:

from tkinter import messagebox

import tkinter as tk

def hello():

name = messagebox.askstring("Your Name", "What is your name?")

messagebox.showinfo("Hello", "Hello " + name)

root = tk.Tk()

button = tk.Button(root, text="Say Hello", command=hello)

button.pack()

root.mainloop()

点击Say Hello按钮,将弹出一个消息框,要求输入名称。

在输入您的名称后,单击“确定”按钮。 如以下屏幕截图所示,显示“ Hello,您的名称”。

3.1 showinfo()方法

showinfo()方法可以用来显示应用程序的信息,如下所示:

from tkinter import messagebox

messagebox.showinfo("Greetings", "Hello World")

运行以下代码,将看到一个信息框显示“Greetings”的标题和“Hello World”的信息:

3.2 showwarning()方法

showwarning()方法用于显示发出应用程序警告的消息框。 该函数包含两个参数:消息框的标题和应用程序警告的消息。

from tkinter import messagebox

messagebox.showwarning("Error", "Warning: Unauthorized access to files")

运行以下代码,将看到一个警告框显示“错误”的标题和“警告:未经授权访问文件”的消息:

3.3 showerror()方法

showerror()方法用于显示应用程序错误的消息框。 该函数包含两个参数:消息框的标题和应用程序错误的消息。

from tkinter import messagebox

messagebox.showerror("Error", "Error: Invalid Password")

运行以下代码,将看到一个错误框显示“错误”的标题和“错误:无效密码”的消息:

3.4 askquestion()方法

askquestion()方法显示一条询问消息,由用户给出 Yes 和 No 的响应。它的两个参数是消息框的标题 和消息字符串。

from tkinter import messagebox

result = messagebox.askquestion("Quit", "Are you sure you want to quit?")

if result == 'yes':

print('Yes Button clicked')

else:

print('No Button clicked')

运行以下代码,将看到一个询问框显示“退出”的标题和“您确定要退出吗?”的消息:

3.5 askokcancel()方法

askokcancel()方法会显示一个消息框并等待用户的点击结果。

from tkinter import messagebox

result = messagebox.askokcancel("Quit", "Are you sure you want to Quit?")

if result == True:

print("OK")

else:

print("Cancel")

运行以下代码,将看到一个询问框显示“退出”的标题和“您确定要退出吗?”的消息,以及“OK”、“Cancel”按钮:

3.6 askyesno()方法

askyesno()方法显示一个 Yes 和 No 的询问窗口。

from tkinter import messagebox

result = messagebox.askyesno("Quit", "Are you sure?")

if result == True:

print("Yes")

else:

print("No")

运行以下代码,将看到一个询问框显示“退出”的标题和“您确定要退出吗?”的消息以及“Yes”、“No”按钮:

3.7 askretrycancel()方法

askretrycancel()方法会显示一个 Retry 和 Cancel 的询问窗口。

from tkinter import messagebox

result = messagebox.askretrycancel("Application Error", "Oops! An unexpected error occurred.")

if result == True:

print("Retry clicked")

else:

print("Cancel clicked")

运行以下代码,将看到一个询问框显示“应用程序错误”的标题和“糟糕!发生了意外错误。”的消息,以及“Retry”、“Cancel”按钮:

4. 总结

此次文章详细地介绍了使用python Tkinter库的 messagebox 方法在 GUI 应用程序中创建弹出消息框。我们可以非常轻松地通过相应的命令添加不同类型的小件,例如按钮、文本窗口等等,来设计自己的 GUI 应用程序的界面。

后端开发标签