Python Tkinter 教程(四)—— 子模块 messagebox、colorchooser 以及 filedialog 的使用及技巧(万字详解)(上)

简介: Python Tkinter 教程(四)—— 子模块 messagebox、colorchooser 以及 filedialog 的使用及技巧(万字详解)(上)

一、messagebox 子模块

一般用法

      messagebox 子模块的一般作用就是产生一个消息框,提供的消息框种类有 8 个,下面将一个一个介绍

【showinfo】

showinfo(title=None, message=None, **options)

信息提示消息框

【title】弹窗的标题

【message】字符串,要显示的信息

【options】其他选项,具体见高级操作

【返回值】字符串对象

【提示音】信息提示音

代码示例

import tkinter.messagebox
return_value = tkinter.messagebox.showinfo('温馨提示', '您还没有给我点赞哦!\n记得点赞,不要忘记啦!')
print(type(return_value), return_value)
# <class 'str'> ok

效果展示

showinfo

【showwarning】

showwarning(title=None, message=None, **options)

警告提示消息框

【title】弹窗的标题

【message】字符串,要显示的信息

【options】其他选项,具体见高级操作

【返回值】字符串对象

【提示音】信息提示音

代码示例

1. import tkinter.messageboximport tkinter.messagebox
return_value = tkinter.messagebox.showwarning('严重警告', '如果你还不给我点赞,你的电脑将收到病毒攻击!')
print(type(return_value), return_value)
# <class 'str'> ok

效果展示

showwarning

【showerror】

showerror(title=None, message=None, **options)

错误提示消息框

【title】弹窗的标题

【message】字符串,要显示的信息

【options】其他选项,具体见高级操作

【返回值】字符串对象

【提示音】错误提示音

代码示例

import tkinter.messagebox
return_value = tkinter.messagebox.showerror('系统错误', '系统正在受到未知来源的病毒攻击!\n(ERROR_3X007)')
print(type(return_value), return_value)
# <class 'str'> ok

效果展示

showerror

【askquestion】

askquestion(title=None, message=None, **options)

一般询问消息框


【title】弹窗的标题


【message】字符串,要显示的信息


【options】其他选项,具体见高级操作


【返回值】字符串对象


【提示音】无


特别的,这个窗口无法点击关闭按钮,只能点击“是(Y)”或者“否(N)”


与 askyesno 的区别在于,该返回值为 str,而 askyesno 为 bool

代码示例

import tkinter.messagebox
return_value = tkinter.messagebox.askquestion('是否点赞', '您要给我点赞是吗?')
print(type(return_value), return_value)
# <class 'str'> yes(点击是) no(点击否)

效果展示

askquestion

【askokcancel】

askokcancel(title=None, message=None, **options)

“确定取消”询问消息框

【title】弹窗的标题

【message】字符串,要显示的信息

【options】其他选项,具体见高级操作

【返回值】布尔值

【提示音】无

代码示例

import tkinter.messagebox
return_value = tkinter.messagebox.askokcancel('点赞确认', '是否给这篇博客点赞?')
print(type(return_value), return_value)
# <class 'bool'> True(点击确定) False(点击取消或关闭)

效果展示

askokcancel

【askyesno】

askyesno(title=None, message=None, **options)

“是否”询问消息框

【title】弹窗的标题

【message】字符串,要显示的信息

【options】其他选项,具体见高级操作

【返回值】布尔值

【提示音】无

特别的,这个窗口无法点击关闭按钮,只能点击“是(Y)”或者“否(N)”

代码示例

import tkinter.messagebox
return_value = tkinter.messagebox.askyesno('收藏确认', '是否收藏这篇博客?')
print(type(return_value), return_value)
# <class 'bool'> True(点击是) False(点击否)

效果展示

askyesno

【askyesnocancel】

askyesnocancel(title=None, message=None, **options)

“是否取消”询问消息框

【title】弹窗的标题

【message】字符串,要显示的信息

【options】其他选项,具体见高级操作

【返回值】布尔值或者 None

【提示音】无

代码示例

import tkinter.messagebox
return_value = tkinter.messagebox.askyesnocancel('支持', '是否点赞并收藏这篇博客?')
print(type(return_value), return_value)
# <class 'bool'> True(点击是) False(点击否) None(点击取消或关闭)

效果展示

askyesnocancel

【askretrycancel】

askretrycancel(title=None, message=None, **options)

“重试取消”询问消息框

【title】弹窗的标题

【message】字符串,要显示的信息

【options】其他选项,具体见高级操作

【返回值】布尔值

【提示音】信息提示音

代码示例

import tkinter.messagebox
return_value = tkinter.messagebox.askretrycancel('提示', '运气不佳,白嫖失败!')
print(type(return_value), return_value)
# <class 'bool'> True(点击重试) False(点击取消或关闭)

效果展示

askretrycancel

高级操作

       高级操作呢,一般人是不知道的,只有看了子模块 messagebox 源代码的人才知道,为什么这么说呢,下面我们看看部分源代码就知道了

# tk common message boxes
# tk的常见消息框
# this module provides an interface to the native message boxes
# available in Tk 4.2 and newer.
# 该模块为Tk 4.2及更新版本中可用的本地消息框提供接口
# written by Fredrik Lundh, May 1997
# 作者:Fredrik Lundh,1997年5月
#
# options (all have default values):
# 参数(都有默认值)
# - default: which button to make default (one of the reply codes)
# 设置默认值的按钮(其中一个回复代码)
# - icon: which icon to display (see below)
# 要显示的图标(见下文)
# - message: the message to display
# 要显示的消息
# - parent: which window to place the dialog on top of
# 将对话框放置在哪个窗口的上面
# - title: dialog title
# 对话框标题
# - type: dialog type; that is, which buttons to display (see below)
# 对话框类型;也就是说,要显示哪些按钮(见下文)
# constants
# icons               【用于icon参数】
ERROR = "error"        # “错误”图标
INFO = "info"          # “信息”图标
QUESTION = "question"  # “询问”图标
WARNING = "warning"    # “警告”图标
# types                               【用于type参数】
ABORTRETRYIGNORE = "abortretryignore"  # 中止、重试、忽略  (3个按钮的模式)
OK = "ok"                              # 确定             (1个按钮的模式)
OKCANCEL = "okcancel"                  # 确定、取消       (2个按钮的模式)
RETRYCANCEL = "retrycancel"            # 重试、取消       (2个按钮的模式)
YESNO = "yesno"                        # 是、否           (2个按钮的模式)
YESNOCANCEL = "yesnocancel"            # 是、否、取消     (3个按钮的模式)
# replies         【用于default参数】
ABORT = "abort"    # 默认为“中止”按钮
RETRY = "retry"    # 默认为“重试”按钮
IGNORE = "ignore"  # 默认为“忽略”按钮
OK = "ok"          # 默认为“确定”按钮
CANCEL = "cancel"  # 默认为“取消”按钮
YES = "yes"        # 默认为“是”按钮
NO = "no"          # 默认为“否”按钮

# tk common message boxes

# tk的常见消息框

# this module provides an interface to the native message boxes

# available in Tk 4.2 and newer.

# 该模块为Tk 4.2及更新版本中可用的本地消息框提供接口

# written by Fredrik Lundh, May 1997

# 作者:Fredrik Lundh,1997年5月

 

#

# options (all have default values):

# 参数(都有默认值)

# - default: which button to make default (one of the reply codes)

# 设置默认值的按钮(其中一个回复代码)

# - icon: which icon to display (see below)

# 要显示的图标(见下文)

# - message: the message to display

# 要显示的消息

# - parent: which window to place the dialog on top of

# 将对话框放置在哪个窗口的上面

# - title: dialog title

# 对话框标题

# - type: dialog type; that is, which buttons to display (see below)

# 对话框类型;也就是说,要显示哪些按钮(见下文)

 

# constants

 

# icons               【用于icon参数】

ERROR = "error"        # “错误”图标

INFO = "info"          # “信息”图标

QUESTION = "question"  # “询问”图标

WARNING = "warning"    # “警告”图标

 

# types                               【用于type参数】

ABORTRETRYIGNORE = "abortretryignore"  # 中止、重试、忽略  (3个按钮的模式)

OK = "ok"                              # 确定             (1个按钮的模式)

OKCANCEL = "okcancel"                  # 确定、取消       (2个按钮的模式)

RETRYCANCEL = "retrycancel"            # 重试、取消       (2个按钮的模式)

YESNO = "yesno"                        # 是、否           (2个按钮的模式)

YESNOCANCEL = "yesnocancel"            # 是、否、取消     (3个按钮的模式)

 

# replies         【用于default参数】

ABORT = "abort"    # 默认为“中止”按钮

RETRY = "retry"    # 默认为“重试”按钮

IGNORE = "ignore"  # 默认为“忽略”按钮

OK = "ok"          # 默认为“确定”按钮

CANCEL = "cancel"  # 默认为“取消”按钮

YES = "yes"        # 默认为“是”按钮

NO = "no"          # 默认为“否”按钮

代码示例

import tkinter.messagebox
return_value = tkinter.messagebox.askyesnocancel('程序错误', '您可以选择终止程序的运行\n或者重新尝试运行\n或者忽略错误继续运行',
                                                 default=tkinter.messagebox.ABORT,
                                                 icon=tkinter.messagebox.ERROR,
                                                 type=tkinter.messagebox.ABORTRETRYIGNORE)

效果展示

                                           高级操作

还有其他的大家也可以积极尝试呀!

目录
相关文章
|
1月前
|
JSON 数据可视化 API
Python 中调用 DeepSeek-R1 API的方法介绍,图文教程
本教程详细介绍了如何使用 Python 调用 DeepSeek 的 R1 大模型 API,适合编程新手。首先登录 DeepSeek 控制台获取 API Key,安装 Python 和 requests 库后,编写基础调用代码并运行。文末包含常见问题解答和更简单的可视化调用方法,建议收藏备用。 原文链接:[如何使用 Python 调用 DeepSeek-R1 API?](https://apifox.com/apiskills/how-to-call-the-deepseek-r1-api-using-python/)
|
4天前
|
机器学习/深度学习 数据采集 数据可视化
Python/Anaconda双方案加持!Jupyter Notebook全平台下载教程来袭
Jupyter Notebook 是一款交互式编程与数据科学分析工具,支持40多种编程语言,广泛应用于机器学习、数据清洗和学术研究。其核心优势包括实时执行代码片段、支持Markdown文档与LaTeX公式混排,并可导出HTML/PDF/幻灯片等格式。本文详细介绍了Jupyter Notebook的软件定位、特性、安装方案(Anaconda集成环境与原生Python+PIP安装)、首次运行配置及常见问题解决方案,帮助用户快速上手并高效使用该工具。
|
10天前
|
SQL 关系型数据库 MySQL
milvus-use教程 python
本项目参考vanna项目,获取数据库元数据和问题SQL对,存入Milvus向量数据库,并进行相似性检索。采用m3e-large嵌入模型,通过DatabaseManager类实现数据库连接持久化,MilvusVectorStore类封装了Milvus操作方法,如创建集合、添加数据和查询。项目提供init_collections、delete_collections等文件用于初始化、删除和管理集合。所用Milvus版本较新,API与vanna项目不兼容。 [项目地址](https://gitee.com/alpbeta/milvus-use)
88 9
|
15天前
|
人工智能 自然语言处理 Shell
[oeasy]python070_如何导入模块_导入模块的作用_hello_dunder_双下划线
本文介绍了如何在Python中导入模块及其作用,重点讲解了`__hello__`模块的导入与使用。通过`import`命令可以将外部模块引入当前环境,增强代码功能。例如,导入`__hello__`模块后可输出“Hello world!”。此外,还演示了如何使用`help()`和`dir()`函数查询模块信息,并展示了导入多个模块的方法。最后,通过一个实例,介绍了如何利用`jieba`、`WordCloud`和`matplotlib`模块生成词云图。总结来说,模块是封装好的功能部件,能够简化编程任务并提高效率。未来将探讨如何创建自定义模块。
33 8
|
12天前
|
缓存 Shell 开发工具
[oeasy]python071_我可以自己做一个模块吗_自定义模块_引入模块_import_diy
本文介绍了 Python 中模块的导入与自定义模块的创建。首先,我们回忆了模块的概念,即封装好功能的部件,并通过导入 `__hello__` 模块实现了输出 &quot;hello world!&quot; 的功能。接着,尝试创建并编辑自己的模块 `my_file.py`,引入 `time` 模块以获取当前时间,并在其中添加自定义输出。
21 4
|
16天前
|
大数据 开发者 C++
Python语法糖详解教程
《Python语法糖详解教程》介绍了编程语言中的“语法糖”,即通过特殊语法形式简化代码,使代码更简洁、易读和高效。文章详细解析了列表推导式、字典推导式、元组解包、条件表达式、with语句和装饰器等核心语法糖,并提供了具体示例和最佳实践指南。通过这些技巧,开发者可以在保持底层功能不变的前提下,显著提升开发效率和代码质量。
39 8
|
18天前
|
C语言 Python
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
|
24天前
|
人工智能 自然语言处理 程序员
体验通义灵码的AI程序员:用Python+Tkinter实现表单向config.ini写入与读取
本文介绍了如何利用通义灵码的AI程序员快速开发一个基于Python和Tkinter的表单应用程序,实现对config.ini文件的读写。通过简单的自然语言描述,通义灵码能自动生成代码框架、自动补全功能代码,并提供错误检测与修复建议,极大提高了开发效率。开发者只需安装必要库(如configparser)并配置VSCode插件TONGYI Lingma,即可轻松创建包含多个输入项和按钮的表单界面。运行程序后,用户可以编辑表单并保存数据到config.ini文件中,再次启动时数据会自动加载显示。这一过程展示了AI在编程中的高效性和灵活性,为开发者提供了全新的开发方式。
123 3
|
5月前
|
数据可视化 IDE 开发工具
【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)
【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)
493 13
|
5月前
|
监控 数据可视化 搜索推荐
【Python篇】matplotlib超详细教程-由入门到精通(下篇)2
【Python篇】matplotlib超详细教程-由入门到精通(下篇)
75 9

热门文章

最新文章