Amazing-Python-Scripts
69 строк · 2.1 Кб
1from tkinter import *
2from tkinter.ttk import Progressbar
3import speedtest
4import time
5
6
7def animate_speed(speed_value, progress_bar, scaling_factor):
8max_value = speed_value * scaling_factor
9increment = max_value / 100
10for i in range(int(max_value) + 1):
11if i > 0.9 * max_value:
12break
13progress_bar['value'] = i
14progress_bar.update()
15time.sleep(0.02)
16
17
18def check_speed():
19st = speedtest.Speedtest()
20download_speed = st.download() / 1000000
21upload_speed = st.upload() / 1000000
22ping = st.results.ping
23download_label.config(text=f"Download Speed: {download_speed:.2f} Mbps")
24upload_label.config(text=f"Upload Speed: {upload_speed:.2f} Mbps")
25ping_label.config(text=f"Ping: {ping:.2f} ms")
26animate_speed(download_speed, download_progress, 5)
27animate_speed(upload_speed, upload_progress, 3)
28animate_speed(ping, ping_progress, 2)
29
30
31root = Tk()
32root.title("Internet Speed Checker")
33root.config(bg="#212121")
34root.geometry("500x400")
35root.resizable(False, False)
36
37label1 = Label(root, text="Internet Speed Checker", font=(
38"Helvetica", 30, "bold"), bg="#212121", fg="#ffffff")
39label1.pack()
40
41download_label = Label(root, font=("Helvetica", 16),
42bg="#212121", fg="#ffffff")
43download_label.pack(pady=10)
44
45download_progress = Progressbar(
46root, orient=HORIZONTAL, length=300, mode='determinate')
47download_progress.pack(pady=10)
48
49upload_label = Label(root, font=("Helvetica", 16), bg="#212121", fg="#ffffff")
50upload_label.pack(pady=10)
51
52upload_progress = Progressbar(
53root, orient=HORIZONTAL, length=300, mode='determinate')
54upload_progress.pack(pady=10)
55
56ping_label = Label(root, font=("Helvetica", 16), bg="#212121", fg="#ffffff")
57ping_label.pack(pady=10)
58
59ping_progress = Progressbar(root, orient=HORIZONTAL,
60length=300, mode='determinate')
61ping_progress.pack(pady=10)
62
63check_speed()
64
65button_refresh = Button(root, text="Refresh", font=(
66"Helvetica", 14, "bold"), bg="#03a9f4", fg="#ffffff", command=check_speed)
67button_refresh.pack(pady=20)
68
69root.mainloop()
70