网络速度显示小插件
本帖最后由 jwzyjwzy 于 2022-11-17 12:22 编辑今天逛论坛发现一篇挺实用的帖子@sgbyg python_tk写的网速监控 - 『编程语言区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn
不知道是不是因为Linux系统的缘故apt-get install python3-tk安装tk后运行提示
ImportError: No module named '_tkinter'
我就用改成qt框架稍微弄了一下
#!/usr/bin/python
from PyQt5.QtWidgets import QApplication, QWidget, QLCDNumber, QDesktopWidget, QVBoxLayout,QLabel
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import time
import sys
import psutil
class Speed(QWidget):
def __init__(self):
super(Speed, self).__init__()
self.initUI()
self.worker = MyWorker()
self.worker.timeout.connect(self.upgradeProgress)
self.worker.start()
def initUI(self):
self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint)
self.setAttribute(Qt.WA_TranslucentBackground)
self.resize(160, 70)
self.up = QLabel(self)
self.up.setGeometry(5, 5, 160, 20)
self.down = QLabel(self)
self.down.setGeometry(5, 28, 160, 20)
#设置文字颜色
#单独设置
self.up.setStyleSheet("color:#e1b16a")
self.down.setStyleSheet("color:#ce4a57")
##统一设置(按照css语法在此设置字体,颜色,大小)
self.setStyleSheet("QLabel{font-size:20px;font-weight:bold}")
#设置字体
self.show()
def upgradeProgress(self,a):
if(a/1024.0<0.88):
self.up.setText("上传 "+str(a)[:5]+"Kb/s")
else:
self.up.setText("上传 "+str(a/1024.0)[:5]+"Mb/s")
if(a/1024.0<0.88):
self.down.setText("下载 "+str(a)[:5]+"Kb/s")
else:
self.down.setText("下载 "+str(a/1024.0)[:5]+"Mb/s")
def mousePressEvent(self, event):
if event.button()==Qt.LeftButton:
self.m_flag=True
self.m_Position=event.globalPos()-self.pos()
event.accept()
self.setCursor(QCursor(Qt.OpenHandCursor))
def mouseMoveEvent(self, QMouseEvent):
if Qt.LeftButton and self.m_flag:
self.move(QMouseEvent.globalPos()-self.m_Position)
QMouseEvent.accept()
def mouseReleaseEvent(self, QMouseEvent):
self.m_flag=False
self.setCursor(QCursor(Qt.ArrowCursor))
class MyWorker(QThread):
timeout = pyqtSignal(list)
def __init__(self):
super(MyWorker, self).__init__()
self.a=[]
def run(self):
while True:
self.a=[]
self.s=(psutil.net_io_counters())
self.r=(psutil.net_io_counters())
self.sleep(1)
self.a.append((psutil.net_io_counters() - self.s) / 1024.0)
self.a.append((psutil.net_io_counters() - self.r) / 1024.0)
self.timeout.emit(self.a)
if __name__ == '__main__':
app = QApplication(sys.argv)
m_time = Speed()
m_time.show()
sys.exit(app.exec_())
可以拖动,可以正常显示Mb/s
2022年11月17日 修复了卡顿,突然跳几千Mb/s,等Bug 本帖最后由 悠扬Le逍遥 于 2022-11-17 10:47 编辑
火绒自带功能
设置-常规设置-基础设置-显示流量悬浮窗
或右击托盘火绒图标--流量悬浮窗 muchenxi 发表于 2022-11-19 13:18
为什么我运行出来只有上传和下载的数据显示,而且不能拖动
你发的图片好像挂了我看不见,如果显示不完整可以尝试调小字号或者修改gui窗口的大小,Windows下确实不好拖动这个是qt的锅对,准文字就可以拖动,建议在Windows下点击“Kb/s”那里比较好拖动 这个图片中任务栏怎么在顶部呢,还是说这是浏览器的顶部?网速显示在哪里呢 本帖最后由 jwzyjwzy 于 2022-11-16 18:37 编辑
C斯咚喃 发表于 2022-11-16 18:35
这个图片中任务栏怎么在顶部呢,还是说这是浏览器的顶部?网速显示在哪里呢在右侧,亲 学习下,多谢分享 z支持,看着不错的。 悠扬Le逍遥 发表于 2022-11-16 18:38
火绒自带功能
设置-常规设置-基础设置-显示流量悬浮窗
好像火绒没有linux版吧... https://github.com/zhongyang219/TrafficMonitor mb linux dl 阿诺ヽ 发表于 2022-11-16 18:45
https://github.com/zhongyang219/TrafficMonitor
你这个只适合windows而且我只想要个可视化的网速而已没有别的需求