zoukankan      html  css  js  c++  java
  • psutil real time flow tkinter

    # _*_ coding: utf-8 _*_
    # @Author   : otfsenter
    
    import Tkinter as tk
    import threading
    import time
    import ttk
    
    import psutil
    
    key = psutil.net_io_counters(pernic=True).keys()[0]
    
    
    def seconds():
        in_flow = psutil.net_io_counters(pernic=True).get(key).bytes_recv
        out_flow = psutil.net_io_counters(pernic=True).get(key).bytes_sent
    
        return int(in_flow), int(out_flow)
    
    
    class Windows(tk.Tk):
        def __init__(self):
            tk.Tk.__init__(self)
            # self.event = event
            self.geometry('200x90')
    
            self.val_in = tk.StringVar()
            self.val_out = tk.StringVar()
    
            self.label_in = tk.Label(self, text='Incoming')
            self.label_out = tk.Label(self, text='Outgoing')
            self.entry_in = ttk.Entry(self, textvariable=self.val_in)
            self.entry_out = ttk.Entry(self, textvariable=self.val_out)
            self.button = ttk.Button(self, text='Start!',
                                     command=self.judge)
    
            self.label_in.grid(row=0, column=0)
            self.label_out.grid(row=1, column=0)
            self.entry_in.grid(row=0, column=1)
            self.entry_out.grid(row=1, column=1)
            self.button.grid(row=2, column=0)
    
            self.mainloop()
    
        def judge(self):
            self.t = threading.Thread(target=self.schedule)
            self.t.start()
    
        def schedule(self):
            in_old, out_old = seconds()
            while 1:
                time.sleep(1)
                in_new, out_new = seconds()
                net_in = (in_new - in_old) / 1024
                net_out = (out_new - out_old) / 1024
    
                self.val_in.set(str(net_in) + 'KB/s')
                self.val_out.set(str(net_out) + 'KB/s')
    
                in_old = in_new
                out_old = out_new
    
    
    if __name__ == '__main__':
        t = Windows()
    
  • 相关阅读:
    Codeforces 526D Om Nom and Necklace (KMP)
    HDU
    HDU
    Codeforces 219D
    HDU
    HDU
    POJ
    HDU
    HDU
    第二次作业
  • 原文地址:https://www.cnblogs.com/otfsenter/p/6657049.html
Copyright © 2011-2022 走看看