|

楼主 |
发表于 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()
|
|