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

python3使用tkinter实现ui界面简单实例

2014-01-10 10:33 633 查看
import timeimport tkinter as tkclass Window:    def __init__(self, title='nms', width=300, height=120, staFunc=bool, stoFunc=bool):        self.w = width        self.h = height        self.stat = True        self.staFunc = staFunc        self.stoFunc = stoFunc        self.staIco = None        self.stoIco = None        self.root = tk.Tk(className=title)    def center(self):        ws = self.root.winfo_screenwidth()        hs = self.root.winfo_screenheight()        x = int( (ws/2) - (self.w/2) )        y = int( (hs/2) - (self.h/2) )        self.root.geometry('{}x{}+{}+{}'.format(self.w, self.h, x, y))    def packBtn(self):        self.btnSer = tk.Button(self.root, command=self.event, width=15, height=3)        self.btnSer.pack(padx=20, side='left')        btnQuit = tk.Button(self.root, text='关闭窗口', command=self.root.quit, width=15, height=3)        btnQuit.pack(padx=20, side='right')    def event(self):        self.btnSer['state'] = 'disabled'        if self.stat:            if self.stoFunc():                self.btnSer['text'] = '启动服务'                self.stat = False                self.root.iconbitmap(self.stoIco)        else:            if self.staFunc():                self.btnSer['text'] = '停止服务'                self.stat = True                self.root.iconbitmap(self.staIco)        self.btnSer['state'] = 'active'    def loop(self):        self.root.resizable(False, False)   #禁止修改窗口大小        self.packBtn()        self.center()                       #窗口居中        self.event()        self.root.mainloop()########################################################################def sta():    print('start.')    return Truedef sto():    print('stop.')    return Trueif __name__ == '__main__':    import sys, os    w = Window(staFunc=sta, stoFunc=sto)    w.staIco = os.path.join(sys.exec_prefix, 'DLLs\pyc.ico')    w.stoIco = os.path.join(sys.exec_prefix, 'DLLs\py.ico')    w.loop()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息