Tkinter 对话框
我们将介绍弹出对话框,看看如何为不同的目的创建不同类型的对话框。
在 Python 中,图形用户界面应用程序开发弹出对话框是小尺寸的窗口,可以用来显示消息框、错误消息框、警告消息、问题消息框等。
我们可以使用 tkinter
模块中的 messagebox
类生成弹出对话框。
在 Tkinter 中使用 messagebox
创建不同的对话框
首先,我们将导入下面代码中所述的这两个。
from tkinter import *
from tkinter import messagebox
每当你想在 Tkinter 中做任何事情时,你都必须设置一个窗口以开始使用 GUI 窗口。下面的代码行将我们的窗口置于屏幕中央,位于所有内容的顶层。
GUI.eval('tk::PlaceWindow %s center' % GUI.winfo_toplevel())
下面的代码行指定一旦我们打开它就不会隐藏在另一个窗口后面。它将确保它与前面一样。
我们撤回我们的窗口,这将使我们的窗口不可见。如果不使用此代码,你将能够在弹出窗口后面看到另一个窗口。
GUI.withdraw()
下一行使用接受两个字符串参数的 showinfo()
方法。第一个是标题
,第二个是你要在此对话框中显示的消息
。
messagebox.showinfo('information','You have created successfully the showinfo box')
最后,我们确保在最后的代码行中完成后退出我们的窗口,因此它不再显示在屏幕上。这是 showinfo
对话框的完整示例代码。
代码:
from tkinter import *
from tkinter import messagebox
GUI=Tk()
GUI.eval('tk::PlaceWindow %s center' % GUI.winfo_toplevel())
GUI.withdraw()
messagebox.showinfo('information','You have created successfully the showinfo box')
GUI.deiconify()
GUI.destroy()
GUI.quit()
输出:
如果你希望显示错误对话框,你将输入 showerror()
消息框。
代码:
from tkinter import *
from tkinter import messagebox
GUI=Tk()
GUI.eval('tk::PlaceWindow %s center' % GUI.winfo_toplevel())
GUI.withdraw()
# Displays an error dialog box
messagebox.showerror('Error','You have generated an error successfully')
GUI.deiconify()
GUI.destroy()
GUI.quit()
输出:
另一个是一个警告对话框,就像你带着警告标志去的地方。使用 showwarning()
消息框。
代码:
from tkinter import *
from tkinter import messagebox
GUI=Tk()
GUI.eval('tk::PlaceWindow %s center' % GUI.winfo_toplevel())
GUI.withdraw()
# Displays a warning dialog box
messagebox.showwarning('Warning','This is warning message by tkinter')
GUI.deiconify()
GUI.destroy()
GUI.quit()
输出:
我们将使用以下对话框中的 askyesno()
消息框在弹出窗口中设置是/否按钮。
代码:
from tkinter import *
from tkinter import messagebox
GUI=Tk()
GUI.eval('tk::PlaceWindow %s center' % GUI.winfo_toplevel())
GUI.withdraw()
# Displays yes/no dialog box
messagebox.askyesno('Asking','Do you love delftstack?')
GUI.deiconify()
GUI.destroy()
GUI.quit()
输出:
askokcancel()
对话框帮助我们做出两个决定,要么是 "ok"
,要么是 "cancel"
。在此示例中,我们使用两个条件进行了一些更改。
由于对话框通过用户操作返回一个 True
或 False
值,我们可以在对话框上设置条件。
代码:
from tkinter import *
from tkinter import messagebox
GUI=Tk()
GUI.eval('tk::PlaceWindow %s center' % GUI.winfo_toplevel())
GUI.withdraw()
# Displays askokcancel dialog box
if messagebox.askokcancel('askokcancel','Update your tkinter version') == True:
print("ok")
else:
print("cancel")
GUI.deiconify()
GUI.destroy()
GUI.quit()
输出:
askretrycancel()
对话框要求我们重试该过程。icon
参数帮助我们设置任何图标。
在我们的例子中,我们只是设置了一个错误图标。
代码:
from tkinter import *
from tkinter import messagebox
GUI=Tk()
GUI.eval('tk::PlaceWindow %s center' % GUI.winfo_toplevel())
GUI.withdraw()
# Displays askretrycancel dialog box
messagebox.askretrycancel('Retry','Invalid pin please Retry',icon="error")
GUI.deiconify()
GUI.destroy()
GUI.quit()
输出:
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn