| 
 | 
 
 
 楼主 |
发表于 2021-9-17 15:51:39
|
显示全部楼层
 
 
 
 
import threading 
import tkinter as tk 
from tkinter import ttk 
import speedtest 
 
root = tk.Tk() 
root.geometry("300x233") 
root.iconbitmap("favicon.ico") 
root.title("网速测试") 
 
frm = tk.LabelFrame(root, text="测试结果") 
frm.pack(padx=10, pady=10, fill=tk.X) 
 
lbl_d = tk.Label(frm, text="下载速度:", font=("DS-Digital", 20)) 
lbl_d.grid(row=0, column=0, sticky=tk.W, padx=10) 
 
lbl_dl = tk.Label(frm, text="", font=("DS-Digital", 20)) 
lbl_dl.grid(row=0, column=1, sticky=tk.W, padx=10) 
 
 
lbl_u = tk.Label(frm, text="上传速度:", font=("DS-Digital", 20)) 
lbl_u.grid(row=1, column=0, sticky=tk.W, padx=10) 
 
lbl_ul = tk.Label(frm, text="", font=("DS-Digital", 20)) 
lbl_ul.grid(row=1, column=1, sticky=tk.W, padx=10) 
 
 
def start_test(): 
    def action(): 
        fishc = speedtest.Speedtest() 
        pb.pack(padx=10, pady=10) 
        pb.start() 
        fishc.get_servers() 
        dl = fishc.download() 
        ul = fishc.upload() 
        lbl_dl.config(text=f"{dl / 1024 / 1024:.2f} Mbits") 
        lbl_ul.config(text=f"{ul / 1024 / 1024:.2f} Mbits") 
        pb.stop() 
        pb.pack_forget() 
        btn.config(state=tk.NORMAL) 
    btn.config(state=tk.DISABLED) 
    threading.Thread(target=action).start() 
 
 
pb = ttk.Progressbar(root, orient=tk.HORIZONTAL, 
                     length=3800, mode="indeterminate") 
 
btn = tk.Button(root, text="开始测速", height=2, command=start_test) 
btn.pack(padx=5, pady=5, fill=tk.X, expand=True) 
 
 
root.mainloop() 
 |   
 
 
 
 |