• 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()
      
        
    ########################################################################
  • 相关阅读:
    42-蓄水池
    11-盛水最多的容器
    老虎-删除排序链表中的重复节点
    72-编辑距离
    53-3-数组中数值和下标相等的元素
    53-2-0~n-1中缺失的数字
    53-1-在排序数组中查找数字
    52-两个链表的第一个公共节点
    51-数组中的逆序对
    I/O相关
  • 原文地址:https://www.cnblogs.com/soul-stone/p/6916626.html
Copyright © 2020-2023  润新知