Amazing-Python-Scripts

Форк
0
69 строк · 2.1 Кб
1
from tkinter import *
2
from tkinter.ttk import Progressbar
3
import speedtest
4
import time
5

6

7
def animate_speed(speed_value, progress_bar, scaling_factor):
8
    max_value = speed_value * scaling_factor
9
    increment = max_value / 100
10
    for i in range(int(max_value) + 1):
11
        if i > 0.9 * max_value:
12
            break
13
        progress_bar['value'] = i
14
        progress_bar.update()
15
        time.sleep(0.02)
16

17

18
def check_speed():
19
    st = speedtest.Speedtest()
20
    download_speed = st.download() / 1000000
21
    upload_speed = st.upload() / 1000000
22
    ping = st.results.ping
23
    download_label.config(text=f"Download Speed: {download_speed:.2f} Mbps")
24
    upload_label.config(text=f"Upload Speed: {upload_speed:.2f} Mbps")
25
    ping_label.config(text=f"Ping: {ping:.2f} ms")
26
    animate_speed(download_speed, download_progress, 5)
27
    animate_speed(upload_speed, upload_progress, 3)
28
    animate_speed(ping, ping_progress, 2)
29

30

31
root = Tk()
32
root.title("Internet Speed Checker")
33
root.config(bg="#212121")
34
root.geometry("500x400")
35
root.resizable(False, False)
36

37
label1 = Label(root, text="Internet Speed Checker", font=(
38
    "Helvetica", 30, "bold"), bg="#212121", fg="#ffffff")
39
label1.pack()
40

41
download_label = Label(root, font=("Helvetica", 16),
42
                       bg="#212121", fg="#ffffff")
43
download_label.pack(pady=10)
44

45
download_progress = Progressbar(
46
    root, orient=HORIZONTAL, length=300, mode='determinate')
47
download_progress.pack(pady=10)
48

49
upload_label = Label(root, font=("Helvetica", 16), bg="#212121", fg="#ffffff")
50
upload_label.pack(pady=10)
51

52
upload_progress = Progressbar(
53
    root, orient=HORIZONTAL, length=300, mode='determinate')
54
upload_progress.pack(pady=10)
55

56
ping_label = Label(root, font=("Helvetica", 16), bg="#212121", fg="#ffffff")
57
ping_label.pack(pady=10)
58

59
ping_progress = Progressbar(root, orient=HORIZONTAL,
60
                            length=300, mode='determinate')
61
ping_progress.pack(pady=10)
62

63
check_speed()
64

65
button_refresh = Button(root, text="Refresh", font=(
66
    "Helvetica", 14, "bold"), bg="#03a9f4", fg="#ffffff", command=check_speed)
67
button_refresh.pack(pady=20)
68

69
root.mainloop()
70

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.