Python核心编程中关于使用PFA编写GUI一个小问题?

54itman 发布于 2014/10/20 22:27
阅读 216
收藏 0
Python核心编程上关于运用PFA的路灯指示牌GUI程序,写了之后,运行发现,相同模板化的组件,后面组件的属性与第一个组件的属性一样,后面组件设置自己的属性运行结果也是一样,以下是截图与运行结果(运行环境为2.7)。
加载中
0
DavidWTF
DavidWTF
仔细看了你的程序,感觉不应该。你自己调调吧,要不贴代码上来,帮你调。
0
5
54itman
import Tkinter
import tkMessageBox
import functools

CRITICAL='critical'
WARNING='warning'
NOTICE='notice'

Signs={'wrong way':CRITICAL,'do not enter':WARNING,'railroud crossing':NOTICE,\
       '55\n speed limit':WARNING,'merging tarffic':CRITICAL,'one way':NOTICE}

Cbackfunc=lambda : tkMessageBox.showerror('Critical','error button press')
Wbackfunc=lambda : tkMessageBox.showwarning('Warning','warning button press')
Nbackfunc=lambda : thMessageBox.showinfo('Notice','notice button press')

top=Tkinter.Tk()
Quitbutton=Tkinter.Button(top,bg='red',fg='black',text='Quit',command=top.quit)
Quitbutton.pack()

MyButton=functools.partial(Tkinter.Button,top)
criticalButton=functools.partial(MyButton,command=Cbackfunc,bg='red',fg='white')
warningButton=functools.partial(MyButton,command=Wbackfunc,bg='green')
noticeButton=functools.partial(MyButton,command=Nbackfunc,bg='black')


for eachsign in Signs :
        signtype=Signs[eachsign]
        if signtype == CRITICAL :
                astring=eachsign.upper()
                cmd='%sButton(text=astring).pack(fill=Tkinter.X,expand=1)'%(signtype)
                eval(cmd)
        else :
                astring=eachsign.title()
                '%sButton(text=astring).pack(fill=Tkinter.X,expand=1)'%(signtype)
                eval(cmd)

Tkinter.mainloop()            
            
昨天调了几次,发现结果还是一样




0
0
返回顶部
顶部