Tkinter设置消息框、对话框

Tkinter 提供了一系列的对话框, 可以用来显示文本消息, 提示警告信息和错误信息, 选择文件或颜色. 其他一些简单的对话框还可以请求用户输入文本, 整数或数字. 
下面是一个典型的对话框使用场景. 在应用程序中经常会有 “退出” 按钮, 如下: 
这里写图片描述

点击 “quit” 按钮会弹出一个确认退出对话框: 
这里写图片描述

我们假设 “退出” 功能还没有最终完成, 这时我们会弹出一个只带 OK 按钮的消息对话框, 提示用户该功能还不可用: 
这里写图片描述

如果用户点击了 “NO” 按钮, 我们可以弹出以下消息框: 
这里写图片描述

让我们回到第一个窗口, 就是那个带有 “quit” 和 “answer” 按钮的对话框. 如果点击 “answer” 按钮, 我们可以弹出一个错误对话框, 告诉用户 “Answer” 功能还不可用: 
这里写图片描述

上面描述的逻辑可用如下代码实现:

from Tkinter import *
from tkMessageBox import *

def answer():
    showerror("Answer", "Sorry, no answer available")

def callback():
    if askyesno('Verify', 'Really quit?'):
        showwarning('Yes', 'Not yet implemented')
    else:
        showinfo('No', 'Quit has been cancelled')

Button(text='Quit', command=callback).pack(fill=X)
Button(text='Answer', command=answer).pack(fill=X)
mainloop()

消息框

消息框功能由 tkMessageBox 包提供, 其中包含了如下消息框类型:

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

询问用户操作是否继续. 选择 ok 则返回 True

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

显示一个问题

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

询问用户是否要重试操作. 选择 ok 则返回 True

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

显示一个问题. 选择 ok 则返回 True

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

显示一个问题. 选择 ok 则返回 True; 选择 cancel 则返回 None

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

给出一条错误信息

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

给出一条提示信息

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

给出一条警告信息

文件选择对话框

几乎所有实用的桌面应用都有 打开文件以读取/写入 的功能. 有些程序还需要提供选择目录功能. Tkinter 中的 tkFileDialog 包提供了这个功能.

from Tkinter import *
from tkFileDialog   import askopenfilename      

def callback():
    name= askopenfilename() 
    print name

errmsg = 'Error!'
Button(text='File Open', command=callback).pack(fill=X)
mainloop()

上面的代码运行后, 会显示一个带有 “File Open” 字样的按钮, 点击这个按钮则显示如下文件选择对话框: 
这里写图片描述

对话框的样式依赖于运行程序的操作系统平台. 上面的窗口是在一部装有 gnome 桌面系统的 linux 操作系统中的显示结果. 如果我们在 Windows7 下运行这段程序, 则会得到如下窗口: 
这里写图片描述

颜色选择对话框

有些应用需要用户选择颜色. Tkinter 提供了这样一种对话框. tkColorChooser 包中包含了这个功能:

result = tkColorChooser.askColor ( color, option=value, ...)

如果用户点击颜色选择对话框的确认按钮, askColor() 方法会返回一个二元组, 其中的元素都可以用来表示所选择的颜色: ((106, 150, 98), '#6a9662') . 第一个元素是一个代表三原色 RGB 的三元组, 每种原色的取值范围为 0-255. 第二个元素是一种16进制表示颜色的方法. 如果用户点击取消按钮, askColor() 方法同样会返回一个二元组: (None, None). 
askColor() 方法中的 options 参数可以是以下选项:

color

用以为颜色选择对话框设置一个默认选择的颜色. 如果未指定 color 选项, 则默认选择颜色为灰色.

title

显示在对话框顶部标题栏的标题文本. 默认的标题为 “Color”.

parent

设置后, 颜色选择对话框会在 parent 这个窗口之上显示. 默认行为是在 root 窗口之上显示.

让我们看一个例子:

from Tkinter import *
from tkColorChooser import askcolor                  

def callback():
    result = askcolor(color="#6A9662", 
                      title = "Bernd's Colour Chooser") 
    print result

root = Tk()
Button(root, 
       text='Choose Color', 
       fg="darkgreen", 
       command=callback).pack(side=LEFT, padx=10)
Button(text='Quit', 
       command=root.quit,
       fg="red").pack(side=LEFT, padx=10)
mainloop()

颜色选择对话框的样式同样取决于运行程序的操作系统及窗口系统. 在 gnome 窗口系统下, 这个对话框显示如下: 
这里写图片描述

这里写图片描述

在 Windows7 系统下, 颜色选择对话框显示如下: 
这里写图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值