Python 3 – Tkinter tkMessageBox
Tkinter是Python中最受欢迎的界面工具包,广泛应用于各种GUI(图形用户界面)程序的开发。tkMessageBox是其中的一个常用模块,可以用于在Tkinter中生成简单的对话框。在本篇文章中,我们将了解如何使用Python 3中的Tkinter来实现消息提示框。
环境搭建与基础知识
在使用Tkinter进行开发之前,需要先确保Python安装了下列软件包:
- Python 3.x版本
- Tcl/Tk (8.5或更高版本)
在Mac和Linux系统上,Tcl/Tk通常是默认安装的,而在Windows系统上,需要从官网(https://www.activestate.com/products/tcl/downloads/)下载并安装。
在了解如何使用tkMessageBox之前,让我们先来了解一下Tkinter messagebox模块的特点:
- 可以通过简单的函数调用(例如:messagebox.showinfo())在Tkinter中生成消息对话框。
- 支持多种对话框类型,例如:信息框、警告框、错误框等等…
tkMessageBox常用函数
下面是tkMessageBox中常用的函数。在这些函数中,messagebox.showinfo()是使用最频繁的。
- messagebox.showinfo(title,message): 显示一个普通的信息对话框,没有返回值。
- messagebox.showwarning(title,message): 显示一个警告的对话框。
- messagebox.showerror(title,message): 显示一个错误对话框。
- messagebox.askquestion(title,message): 显示一个不确定的对话框,返回值’yes’或‘no’。
- messagebox.askyesno(title,message):显示一个包含Ok和Cancel按钮的对话框,返回值True或False。
- messagebox.askokcancel(title,message):显示一个包含Ok和Cancel按钮的对话框,返回值True或False。
代码示例:
import tkinter as tk
from tkinter import messagebox
root=tk.Tk()
root.geometry("100x100")
messagebox.showinfo(title="Info", message="Information box")
root.mainloop()
标题和对话框信息
messagebox.showinfo()函数可应用于所有类型的消息。可以使用该函数的两个参数: title表示对话框的标题, message表示对话框中的消息。
代码示例:
import tkinter as tk
from tkinter import messagebox
root=tk.Tk()
root.geometry("100x100")
messagebox.showinfo(title="Info", message="Information box")
root.mainloop()
如果向messagebox.showwarning()和messagebox.showerror()函数传递title和message参数,则将创建警告和错误框。
代码示例:
import tkinter as tk
from tkinter import messagebox
root=tk.Tk()
root.geometry("100x100")
messagebox.showwarning(title="Warning", message="This is a warning message!")
root.mainloop()
同样,代码示例:
import tkinter as tk
from tkinter import messagebox
root=tk.Tk()
root.geometry("100x100")
messagebox.showerror(title="Error", message="This is an error message!")
root.mainloop()
确认和取消选项
可以使用messagebox.askokcancel(),messagebox.askyesno()和messagebox.askquestion()函数在对话框中提供确认和取消选项。如果单击“确定(Ok)”按钮,则返回True;如果单击“取消(Cancel)”按钮,则返回False。在askyesno()和askquestion()函数中, ‘yes’和‘no’的返回值表示如果选择了“是(Yes)”选项,则为True,否则为False。 在此示例程序中,使用askquestion函数。
代码示例:
import tkinter as tk
from tkinter import messagebox
root=tk.Tk()
response=messagebox.askquestion(title="Question", message="Do you want to continue?")
if response == 'yes':
print("You clicked Yes!")
else:
print("You clicked No!")
root.mainloop()
如果选择“Yes”选项,则显示出“It Works”;如果单击“No”选项,则显示出“Nothing Happened” 。
结论
Tkinter messagebox是Python GUI编程中一个非常有用的工具。 无论是在显示一般信息还是在弹出错误/警告对话框时,messagebox.showinfo(),messagebox.showwarning()和messagebox.showerror()函数都是十分有效的方法。
另外,还建议使用askokcancel()或askyesno()函数作为需要用户执行确认时的好选择。希望这篇文章能够使你更加了解Tkinter messagebox的常用函数,并在实际开发中有所帮助。