Python: Tkinter实现GUI界面

来源:互联网 发布:手机网络苏菲广告美女 编辑:程序博客网 时间:2024/05/18 00:27
#!/usr/bin/env python
#coding:gbk
#================================================================
#Name : Tkinter.py
#Desc : Tkinter
#Author : xxx
#Date : 20121214
#Modify : 
#From :
#================================================================
import os
import sys
import time
from Tkinter import *
from tkMessageBox import showinfo,showwarning,showerror
from functools import partial as pto

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

SIGNS = {'do not enter': CRIT,'railroad crossing': WARN,
         '55\nspeed limit': REGU,'wrong way': CRIT,
         '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 Pressed')

class BASE(): 
    def __init__(self):      
        self.root = Tk()
        self.root.geometry('800x600')
        self.root.title('MySecond')
        Button(self.root,text='QUIT',command=self.root.quit,bg='red',fg='white').pack()
        self.MyButton = pto(Button,self.root)

    def CreateGUI(self):
        self.CritButton = pto(self.MyButton,command=critCB,bg='white',fg='red')
        self.WarnButton = pto(self.MyButton,command=warnCB,bg='goldenrod1')
        self.ReguButton = pto(self.MyButton,command=infoCB,bg='white')
    
    def Work(self):
        self.CreateGUI()
        
        for eachSign in SIGNS:
            signType=SIGNS[eachSign]
            cmd = 'self.%sButton(text=%r%s).pack(fill=X,expand=True)'%(
                  signType.title(),eachSign,
                  '.upper()' if signType == CRIT else '.title()')
            eval(cmd)
        
        self.root.mainloop()
        
if __name__ == '__main__':
    base = BASE()
    base.Work()
原创粉丝点击