zoukankan      html  css  js  c++  java
  • python: tk demo

    # coding=utf-8
    
    import time
    import tkinter as tk
    
    ########################################################################
    class 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 True
    def sto():
        print('stop.')
        return True
    
    if __name__ == '__main__':
        import sys, os
    
        w = Window(staFunc=sta, stoFunc=sto)
        w.staIco = os.path.join(sys.exec_prefix, 'DLLspyc.ico')
        w.stoIco = os.path.join(sys.exec_prefix, 'DLLspy.ico')
        w.loop()
      
        
    ########################################################################
  • 相关阅读:
    word设置的密码忘了怎么办?
    Navicat Report Viewer 设置 HTTP 的方法
    如何处理Navicat Report Viewer 报表
    excel密码忘记了怎么办
    Beyond Compare文本比较搜索功能详解
    Popular Cows POJ
    Problem B. Harvest of Apples HDU
    网络流模型整理
    The Shortest Statement CodeForces
    Vasya and Multisets CodeForces
  • 原文地址:https://www.cnblogs.com/soul-stone/p/6916626.html
Copyright © 2011-2022 走看看