您的位置:首页 > 编程语言 > Python开发

python核心编程-GUI程序之偏函数应用

2016-01-22 22:46 716 查看
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

from functools import partial as pto
from Tkinter import Tk, Button, X
from tkMessageBox import showinfo, showwarning

WARN = 'warn'
CRIT = 'crit'
REGU = 'regu'

SIGNS = {
'do not enter': CRIT,
'railroad crossing':WARN,
'55\nspeed limit':REGU,
'merging traffic':WARN,
'one way':REGU,
}

critCB = lambda: showerror('Error', 'Error Button Pressed!')
warnCB = lambda: showwarning('Warning', 'Warning Button Pressed!')
infoCB = lambda: showinfo('Info', 'Info Button Pressond!')

top = Tk()
top.title('Road Signs')
Button(top, text='QUIT', command=top.quit, bg='red', fg='white').pack()

MyButton = pto(Button, top)
CritButton = pto(MyButton, command=critCB, bg='white', fg='red')
WarnButton = pto(MyButton, command=warnCB, bg='goldenrod1')
ReguButton = pto(MyButton, command=infoCB, bg='white')

for eachSign in SIGNS:
signType = SIGNS[eachSign]
cmd = '%sButton(text=%r%s).pack(fill=X, expand=True)' % (signType.title(), eachSign, '.upper()' if signType == CRIT else '.title()')
print cmd
eval(cmd)

top.mainloop()


输出:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: