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 应用程序的界面。