用 pyqt5 網路速度檢測 speedtest

本文介绍了如何使用Python库speedtest-cli检测直播中的网络问题,通过PyQt5创建用户界面,结合QThread实现网络速度的实时监测。通过实例演示了下载和上传速度的测量,并针对网络不稳定问题提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

當用OBS 做直播時,常發現不穩問題,原來是網路品質不好,於是開發一下檢測網路速度

1.pip install speedtest-cli

2.程式如下
import speedtest
st = speedtest.Speedtest()
print(st.download())
print(st.upload())

print(f"Your download speed: {round(st.download() / 1000 / 1000, 1)} Mbit/s")
print(f"Your upload speed: {round(st.upload() / 1000 / 1000, 1)} Mbit/s")

3.改用 pyqt5 可以執行網路檢測的方法
3.1 介面如
在这里插入图片描述

3.2 程式如下:

    def network_testing(self):
        self.ui.pushButton_65.setStyleSheet('QPushButton { color: red;}')
        self.speeding = network_speed()
        self.speeding.start()
        self.speeding.trigger.connect(self.updateLabel)
    def updateLabel(self, upload, download):
        self.upload=upload
        self.download=download
        self.ui.lineEdit_25.setText( self.upload )
        self.ui.lineEdit_32.setText( self.download)
        self.ui.pushButton_65.setStyleSheet('QPushButton { color: black;}')

3.3 要用 Thread 來執行,程式如下:

class network_speed(QThread):
    trigger = pyqtSignal(str,str)
    def __init__(self):
        super(network_speed, self).__init__()
        
    def run(self): 
        self.test = speedtest.Speedtest()
        self.test.get_servers()
        #self.best = self.test.get_best_server()
        while True:
            self.upload = str( int(self.test.upload() / 1024 / 1024))
            self.download = str( int(self.test.download() / 1024 / 1024))
            if self.upload != "" and self.download != "":
                self.trigger.emit( self.upload, self.download)
                break        
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值