【学习笔记】Python tkinter模块中的弹窗模块详解
【学习笔记】Python tkinter模块中的弹窗模块详解
文章引入
Tkinter模块是Python中内置的一个强大的GUI库,在GUI界面设计的过程中通常会用到弹窗提醒,或是提示信息确认功能,本次我们一起认识的tkinter模块中的messagebox弹窗库正是为了方便我们完成设计目标,接下来将会讲解其使用方法以及使用技巧。
本教程希望对大家学习Python有一定的帮助,如有问题与纰漏欢迎在评论区留言,我们一起学习一起进步,喜欢的可以点个关注+点赞+关注三连!
模块详解
Tkinter中的弹窗库为tkinter.messagebox。它拥有8种类型的弹窗,其中,有3种信息提醒弹窗,5种确认信息弹窗。
主要区别在于显示内容和效果的不同,且确认信息弹窗可以用来绑定对应返回结果触发不同事件。现在,让我们一起开始学习tkinter弹窗库吧!!
模块导入
在较新的Python的tkinter库中,弹窗模块需要单独导入,直接使用会引起程序报错。
import tkinter as tk # 导入tkinter模块。为了方便后续讲解,命名为 tk。
import tkinter.messagebox # 引入弹窗库,防止解释器弹出报错。
基础定义
本处我们将开始绘制一个简单的tkinter窗口,并且简单声明部分组件用于我们后续的触发弹出窗口执行以及展示。
window =tk.Tk() # 生成主窗口,命名 window
window.title('Test Window') # 定义主窗口标题
window.geometry('300x200') # 定义主窗口的长宽
def display_messagebox(): # 定义一个响应函数,目前内容为空
pass
tk.Button(window,text='click me',command=display_messagebox).pack() # 定义一个按钮,用来后续触发弹窗,为了方便直接pack()吧。
window.mainloop() # 主窗口循环运行
现在,一个简单的窗口已经定义好啦!
现在,我们开始讲解弹窗吧!正片开始!
类型弹窗:信息提醒弹窗(3种)
本处我们将介绍tkinter库里3种的信息提醒弹窗。分别为showinfo,showerror,showwarning三种。接下来分别让我们看一看吧!
为了方便大家直观了解学习体验,本处将续上先前定义好的窗口基础定义,并写上新的代码。
第一种:showinfo 信息提醒弹窗
代码片
window =tk.Tk()
window.title('Test Window')
window.geometry('300x200')
def display_messagebox():
tk.messagebox.showinfo(title='display_messagebox',
message='This is a showinfo_messagebox') # 消息提醒弹窗,点击确定返回值为 ok
tk.Button(window,text='click me',command=display_messagebox).pack()
window.mainloop()
至此,一个showinfo消息提醒弹窗定义完成,当点击确定时,程序返回值为“ok”。
巧记:弹窗命名通常较为复杂,但如果将其名称分割开,就很好理解其设计师命名与其所设想弹窗的主要作用含义了。因为,真正的文艺男都跑去学理工了(bu shi)
例如:本类型名称为showinfo弹窗,那么可以将其名称看作成英文show info ==> 显示信息。这样就可以将其理解成用来 显示程序运行信息 弹窗。
第二种:showerror 信息错误弹窗
代码片
window =tk.Tk()
window.title('Test Window')
window.geometry('300x200')
def display_messagebox():
tk.messagebox.showerror(title='display_messagebox',
message='This is a showerror_messagebox') # 信息错误弹窗,点击确定返回值为 ok
tk.Button(window,text='click me',command=display_messagebox).pack()
window.mainloop()
至此,一个showerror信息错误弹窗定义完成,当点击确定时,程序返回值为“ok”。
巧记:同上理解,本类型名称为showerror弹窗,那么可以将其名称看作成英文show error==> 显示错误。这样就可以将其理解成用来 显示程序运行错误 弹窗。
第三种:showwarning 信息警告弹窗
代码片
window =tk.Tk()
window.title('Test Window')
window.geometry('300x200')
def display_messagebox():
tk.messagebox.showwarning(title='display_messagebox',
message='This is a showwarning_messagebox') # 信息警告弹窗,点击确定返回值为 ok
tk.Button(window,text='click me',command=display_messagebox).pack()
window.mainloop()
至此,一个showwarning信息警告弹窗定义完成,当点击确定时,程序返回值为“ok”。
巧记:同上理解,本类型名称为showwarning弹窗,那么可以将其名称看作成英文show warning==> 显示警告。这样就可以将其理解成用来 显示程序运行警告 弹窗。
三种提示弹窗已经讲完了,前面三种弹窗虽然各有个的显示方式,但是他们都有一个特点:选项只有一个,且返回值均为“ok”!
现在,我们来讲一下确认信息弹窗,看看与前者3个有什么区别呢?
类型弹窗:确认信息弹窗(5种)
本处我们将介绍tkinter库里5种的确认信息弹窗,与前面的弹窗内容不同,本处的弹窗内容主要询问用户是否执行下一步,对此,我们可以绑定对应选项的返回值进行内容下一步执行。接下来分别让我们看一看吧!
为了方便大家直观了解学习体验,本处将续上先前定义好的窗口基础定义,并写上新的代码。
第一种:是T/否F 确认弹窗
代码片
window =tk.Tk()
window.title('Test Window')
window.geometry('300x200')
def display_messagebox():
tk.messagebox.askyesno(title='display_messagebox',
message='This is a askyesno_messagebox') # 信息确认弹窗 是 Ture或 否 False
tk.Button(window,text='click me',command=display_messagebox).pack()
window.mainloop()
至此,一个askyesno信息确认弹窗定义完成,点击 是 返回True, 否 返回False(可对应整型布尔值)
巧记:同上理解,本类型名称为askyesno弹窗,那么可以将其名称看作成英文ask yes no==> 询问 是 否。这样就可以将其理解成用来 询问用户的是否执行下一步 弹窗。
通过了解其返回值,我们可以对应的绑定接下来执行的内容。例如:
mess =tk.messagebox.askyesno(title='display_messagebox',message='This is a askyesno_messagebox')
if mess ==0:
print('Choose not!')
第二种:是Y/否N 确认弹窗
代码片
window =tk.Tk()
window.title('Test Window')
window.geometry('300x200')
def display_messagebox():
tk.messagebox.askquestion(title='display_messagebox',
message='This is a askquestion_messagebox') # 信息确认弹窗 是 yes或 否 no
tk.Button(window,text='click me',command=display_messagebox).pack()
window.mainloop()
至此,一个askquestion信息确认弹窗定义完成,点击 是 返回yes, 否 返回no
通过了解其返回值,我们可以对应的绑定接下来执行的内容。方法与本类第一种同理。
巧记:同上理解,本类型名称为askquestion弹窗,那么可以将其名称看作成英文ask question==> 询问 问题。这样就可以将其理解成用来 询问用户问题 弹窗。
第三种:确认T/ 取消F 确认弹窗
代码片
window =tk.Tk()
window.title('Test Window')
window.geometry('300x200')
def display_messagebox():
tk.messagebox.askokcancel(title='display_messagebox',
message='This is a askokcancel_messagebox') # 信息确认弹窗 确定 True或 取消 False
tk.Button(window,text='click me',command=display_messagebox).pack()
window.mainloop() # 主窗口循环运行
至此,一个askokcancel信息确认弹窗定义完成,点击 是 返回True, 否 返回False,点击关闭 返回False
通过了解其返回值,我们可以对应的绑定接下来执行的内容。方法与本类第一种同理。
巧记:同上理解,本类型名称为askokcancel弹窗,那么可以将其名称看作成英文ask ok cancel==> 询问 确定 取消。这样就可以将其理解成用来 询问用户是否确定执行下一步 弹窗。
第四种:确认Y / 否 F / 取消N 确认弹窗
代码片
window =tk.Tk()
window.title('Test Window')
window.geometry('300x200')
def display_messagebox(): # 定义一个响应函数
tk.messagebox.askyesnocancel(title='display_messagebox',
message='This is a askyesnocancel') # 信息确认弹窗 是 True / 否 False 或 取消 None
tk.Button(window,text='click me',command=display_messagebox).pack()
window.mainloop()
至此,一个askyesnocancel信息确认弹窗定义完成,点击 是 返回True, 否 返回False,取消 返回None,点击关闭 返回None
通过了解其返回值,我们可以对应的绑定接下来执行的内容。方法与本类第一种同理。
巧记:同上理解,本类型名称为askyesnocancel弹窗,那么可以将其名称看作成英文ask yes no cancel==> 询问 是 否 取消。这样就可以将其理解成用来 询问用户的是否执行下一步 弹窗。
第五种:重试T / 取消F 确认弹窗
代码片
window =tk.Tk()
window.title('Test Window')
window.geometry('300x200')
def display_messagebox():
tk.messagebox.askretrycancel(title='display_messagebox',
message='This is a askretrycancel') # 信息确认弹窗 重试 True / 取消 False
tk.Button(window,text='click me',command=display_messagebox).pack()
window.mainloop()
至此,一个askretrycancel信息确认弹窗定义完成,点击 重试 返回True / 取消 返回False,点击关闭 False
通过了解其返回值,我们可以对应的绑定接下来执行的内容。方法与本类第一种同理。
巧记:同上理解,本类型名称为askretrycancel弹窗,那么可以将其名称看作成英文ask retry cancel==> 询问 重试 取消。这样就可以将其理解成用来 询问用户是否需要进行重试操作 弹窗。
五种确认信息弹窗已经讲完了,五种确认信息弹窗有自己的显示方式,且返回值每种类型返回值都有些许不同,所以通常在我们使用过程当中,可以使用一部分作为自己常用的类型。
弹窗的参数详解
title 弹窗窗口标题;
message 弹窗所显示的消息;
default 定义弹窗按钮;
icon 定义弹窗图标;
parent 定义弹窗的父组件;
type 定义弹窗类型;
写在最后的话
Python的Tkinter库中8大弹窗类型分别都写完了,其主要分为3种信息提醒,5种确认信息的弹窗。每种弹窗都有个自己的特点,返回类型也有些许不同,如何将这些功能灵活运用上我们实际操作当中,这些才是每一种功能弹窗存在的具体意义。
本文写到这里也接近尾声,如果在本文中存在疑问、错误或纰漏,还希望各位能够在评论区提出一起学习。如果你喜欢我的文章,欢迎关注+点赞+收藏三连支持一下,你的鼓励将是我继续创作的继续动力。
更多推荐
所有评论(0)