显示网速的小窗口
import tkinter import psutil import time from tkinter import * on_X = 0 #此时鼠标的x坐标 on_Y = 0 #此时鼠标的y坐标 def make_app(): app =Tk() app.geometry('100x50+1820+990') app.overrideredirect(True) #隐藏标题栏 app.config(bg='#303030') app.resizable(False,False) #不允许拖动调整大小 app.wm_attributes('-topmost',1) app.bind('<ButtonPress-1>',func=move_start) #鼠标左键按下 app.bind('<ButtonRelease-1>',func=move_stop) #鼠标左键放开 app.bind("<B1-Motion>",func=lambda event,app_=app:move_local(app_,event)) Label(name='up',text='',bg='#303030',fg='white').pack(fill=tkinter.X) Label(name='dw',text='',bg='#303030',fg='white').pack(fill=tkinter.X) return app def move_start(event): global on_X,on_Y on_X = event.x #是程序界面的位置,而不是整个屏幕的位置 on_Y = event.y def move_stop(event): global on_X,on_Y on_X = None on_Y = None def move_local(app,event): global on_X,on_Y x = app.winfo_x() + event.x - on_X y = app.winfo_y() + event.y - on_Y app.geometry("+{}+{}".format(x,y)) def get_speed(): net_send_ = psutil.net_io_counters().bytes_sent # 已发送的总的流量 net_down_ = psutil.net_io_counters().bytes_recv # 已接收的总的流量 time.sleep(0.1) net_send = psutil.net_io_counters().bytes_sent - net_send_ # 0.5秒内的流量差值 net_down = psutil.net_io_counters().bytes_recv - net_down_ # 0.5秒内的流量差值 #除法结果保留两位小数 def size_show(size): '''友好化文件大小字符串''' unit_dict = {0: r"B/s", 1: r"KB/s", 2: r"MB/s", 3: r"GB/s"} size = int(size) size_ = size unit_flag_int = 0 while size_ > 1024: size_ = size_ / 1024 unit_flag_int += 1 ret_size = "{}{}".format(round(size_, 2), unit_dict[unit_flag_int]) return ret_size #就是要乘以8才对的上 return ("↑:{}".format(size_show(net_send*8)),"↓:{}".format(size_show(net_down*8))) def ui_updata(do): data = do() #app下名字是lb2的子控件 up = app.children['up'] dw = app.children['dw'] up.config(text=data[0]) dw.config(text=data[1]) #每0.5秒后调用lambda:ui_updata(do)函数 app.after(500,lambda:ui_updata(do)) app = make_app() #每0.5秒后调用ui_updata(speed_test)函数 app.after(500,lambda :ui_updata(get_speed)) app.mainloop()
分类:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2019-03-21 初学Python的奇葩用法