tkinter -- tkCommonDialog

使用用模态对话框 SimpleDialg

代码:

import tkinter as tk
from tkinter.simpledialog import *

root = tk.Tk()
# 创建一个 SimpleDialog
# buttons:显示的按钮
# default:默认选中的按钮
dlg = SimpleDialog(root,
                   text='hello simpledialog',
                   buttons=['yes', 'no', 'cancel'],
                   default=0,
                   )
# 执行对话框
print(dlg.go())
root.mainloop()

结果:

返回值为点击的按钮在 buttons 中的索引值

使用 tkSimpleDialog 模块

代码:

import tkinter as tk
# 引入 SimpleDialog 模态对话框
from tkinter.simpledialog import *

root = tk.Tk()
# 输入一个整数,
# initialvalue 指定一个初始值
# prompt 提示信息
# title 提示框标题
print(askinteger(title='prompt', prompt='input a interger', initialvalue=100))

# 输入一浮点数
# minvalue 指定最小值
# maxvalue 指定最大值,如果不在二者指定范围内则要求重新输入
print(askfloat(title='float',prompt='input a float',minvalue=0,maxvalue=11))

# 输入一字符串
print(askstring(title='string',prompt='input a string'))


root.mainloop()

结果:

返回值为各自输入的值

打开文件对话框

代码:

import tkinter as tk
from tkinter.filedialog import *

root = tk.Tk()
# 指定 master 就可以了。
# title 属性用来指定标题
fd = LoadFileDialog(root)
# go 方法的返回值即为选中的文本路径,如果选择取返回值则为 None
print(fd.go())
root.mainloop()

结果:

返回选中的文件名称

保存文件对话框

与 LoadFileDialog 正好操作相反,这个类是用来保存文件。

各个 参数的意义都 一样,只是 ok 的返回值为保存的文件名称;如果取消则为 None

代码:

import tkinter as tk
from tkinter.filedialog import *

root = tk.Tk()
# 指定 master 就可以了。
# title 属性用来指定标题
fd = SaveFileDialog(root)
# go 方法的返回值即为选中的文本路径,如果选择取返回值则为 None
print(fd.go())

root.mainloop()

结果:

返回选中的文件名称

使用颜色对话框

代码:

import tkinter as tk
# 引入 colorchoose 模块
from tkinter.colorchooser import *

root = tk.Tk()

# 调用 askcolor 返回选中颜色的(R,G,B)颜色值及#RRGGBB 表示
print(askcolor())

root.mainloop()

结果:

使用消息对话框

使用提示对话框模块 tkMessageBox

代码:

import tkinter as tk
# 引入 messagebox 模块
from tkinter.messagebox import *

root = tk.Tk()

stds = [
    showinfo,  # 显示信息消息框
    showwarning,  # 显示警告消息框
    showerror,  # 显示错误消息框
    askquestion,  # 显示询问消息框
    askokcancel,  # 显示确认/取消消息框
    askyesno,  # 显示是/否消息框
    askretrycancel  # 显示重试/取消消息框
]

for std in stds:
    print(str(std), std(title=str(std), message=str(std)))
# 程序打印输出结果如下(与点击的按钮得到不同其值)
# <function showinfo at 0x0000015C6EB89510> ok
# <function showwarning at 0x0000015C703B7400> ok
# <function showerror at 0x0000015C703B7488> ok
# <function askquestion at 0x0000015C703B7510> yes
# <function askokcancel at 0x0000015C703B7598> True
# <function askyesno at 0x0000015C703B7620> True
# <function askretrycancel at 0x0000015C703B7730> True
root.mainloop()

结果:

如果要确认点击的是那一个按钮,则可以判断这个消息框的返回值,注意各个值有所不同,返回值有 ok/yes/True

使用缺省焦点

使用提示对话框模块 tkMessageBox 缺省焦点

代码:

import tkinter as tk
from tkinter.messagebox import *
root = tk.Tk()
print(askokcancel(title='quit application?',
                  message='would you like quit this application',
                  default='cancel'  # 指定默认焦点位置
      ))

root.mainloop()

结果:

使用 default 来指定默认焦点位置,ABORT/RETRY/IGNORE/OK/CANCEL/YES/NO,如果指定的按钮不存在,在抛出异常

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PHP在线

书写高质量jQuery代码的6条经验

一、正确引用jQuery 尽量在body结束前才引入jQuery,而不是在head中。 借助第三方提供的CDN来引入jQuery,同时注意当使用第三方CDN出现...

3819
来自专栏闪电gogogo的专栏

Python初学——窗口视窗Tkinter

此篇文章是跟着沫凡小哥的视频学习的,附上学习网址:https://morvanzhou.github.io/tutorials/python-basic/ 什么...

8807
来自专栏郭少华

(Vue全家桶)Vue-router

如果你在使用vue-cli中已经选择安装了vue-router,那这里不需要重复安装了。

1251
来自专栏Pythonista

Golang之并发篇

1213
来自专栏偏前端工程师的驿站

前端魔法堂:onsubmit和submit事件处理函数怎么不生效呢?

前言  最近在用Polymer增强form,使其支持表单的异步提交,但发现明明订阅了onsubmit和submit事件,却怎么也触发不了。下面我们将一一道来。 ...

2177
来自专栏杂七杂八

selenium使用

pip insatll selenium 由于如果需要使用selenium的话,需要为本机配置对应浏览器的驱动,下面以chomedriver为例,首先安装ch...

1763
来自专栏hbbliyong

RadioButtonList数据项不改变依然执行改变事件

问题:使用RadioButtonList导航到其他页面,当点击一数据项出现新页时候,关闭新页,再点击此数据项,由于数据项没有改变,所以不能触发他的Selecte...

2863
来自专栏Golang语言社区

【Go 语言社区】Golang语言vim开发环境快捷键

生成标签 gotags -R 项目 > tags 跳转到变量定义 光标在某变量或函数上,输入gd跳转;ctrl+o或者Ctrl+t返回 tagbar F8是ta...

3186
来自专栏Youngxj

给源代码和控制台加上线条字

1933
来自专栏DeveWork

自定义WordPress 标签云小工具相关参数

相信你知道WordPress 标签云widget(小工具)是什么,如果你的WordPress 主题支持小工具,就可以在后台启用标签云小工具,该小工具不仅能展示标...

2578

扫码关注云+社区

领取腾讯云代金券