电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python百行代碼自制電腦端網(wǎng)速懸浮窗的實(shí)現(xiàn)

瀏覽:89日期:2022-07-25 17:45:41

前言

看到某60的網(wǎng)速懸浮球有點(diǎn)心動(dòng),但是又不想裝這個(gè)流氓軟件,就自己用python加PyQt5自制了一個(gè),實(shí)測(cè)還行,關(guān)鍵不占用電腦一點(diǎn)資源,已將軟件打包,可自行下載使用。

預(yù)覽

觀看直播時(shí)實(shí)時(shí)網(wǎng)速。

python百行代碼自制電腦端網(wǎng)速懸浮窗的實(shí)現(xiàn)

文件結(jié)構(gòu)

python百行代碼自制電腦端網(wǎng)速懸浮窗的實(shí)現(xiàn)

運(yùn)行管理

開(kāi)始運(yùn)行時(shí)內(nèi)存消耗18.3m,cpu,磁盤,網(wǎng)絡(luò)不占用。

python百行代碼自制電腦端網(wǎng)速懸浮窗的實(shí)現(xiàn)

運(yùn)行一天后內(nèi)存穩(wěn)定于6.4m,cpu,磁盤,網(wǎng)絡(luò)不占用。

python百行代碼自制電腦端網(wǎng)速懸浮窗的實(shí)現(xiàn)

整體思路

使用psuti.net_io_counters 監(jiān)控電腦網(wǎng)卡IO 將流量數(shù)據(jù)格式化,統(tǒng)計(jì)每次數(shù)據(jù)總和保存在本地《流量使用情況.txt》(這個(gè)是個(gè)缺陷,我只用txt保存,用戶可以隨意更改,后期完善一下加密保存,隱藏文件信息。) PyQt窗口制作,兩個(gè)label,一個(gè)網(wǎng)速信息,一個(gè)動(dòng)態(tài)圖展示,隱藏窗口標(biāo)題欄,任務(wù)欄,窗口全屏幕隨意移動(dòng),鼠標(biāo)放到窗口樣式變?yōu)樽ナ郑髽?biāo)右鍵菜單欄,退出程序,軟件關(guān)于。 退出程序時(shí)保存流量總和信息到文件,下次啟動(dòng)先讀取流量總和數(shù)據(jù)。

代碼清單

網(wǎng)速獲取&&格式化

def gsh(count): if count < 1024: return '%.2f B/s' % count if count < 1048576: return '%.2f KB/s' % (count / 1024) count >>= 10 if count < 1048576: return '%.2f MB/s' % (count / 1024) count >>= 10 return '%.2f GB/s' % (count / 1024)def get_data(): old = [0, 0] new = [0, 0] net_info = net_io_counters() # 獲取流量統(tǒng)計(jì)信息 recv_bytes = net_info.bytes_recv sent_bytes = net_info.bytes_sent old[0] += recv_bytes old[1] += sent_bytes time.sleep(1) # 當(dāng)前所收集的數(shù)據(jù) net_info = net_io_counters() # 獲取流量統(tǒng)計(jì)信息 recv_bytes = net_info.bytes_recv sent_bytes = net_info.bytes_sent new[0] += recv_bytes new[1] += sent_bytes info = [] for i in range(2): info.append(new[i] - old[i]) return info

窗口界面

class Main(QWidget): _startPos = None _endPos = None _isTracking = False all_bytes=0 about = '監(jiān)控電腦網(wǎng)絡(luò)的上傳跟下載網(wǎng)速。n統(tǒng)計(jì)網(wǎng)絡(luò)使用總流量!n作者:旋凱凱旋' def __init__(self): super().__init__() self._initUI() with open(’流量使用情況.txt’, ’r’) as f: self.all_bytes = int(f.read()) def _initUI(self): self.setFixedSize(QSize(259, 270)) self.setWindowFlags(Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint | Qt.Tool) self.setAttribute(QtCore.Qt.WA_TranslucentBackground) # 設(shè)置窗口背景透明 self.label = QtWidgets.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 259, 111)) self.label.setMinimumSize(QtCore.QSize(259, 111)) self.label.setBaseSize(QtCore.QSize(259, 111)) self.label.setStyleSheet('font: 75 20pt 'Adobe Arabic';color:rgb(255,0,0)') self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName('label') self.label2 = QtWidgets.QLabel(self) self.label2.setGeometry(QtCore.QRect(10, 110, 259, 161)) self.label2.setMinimumSize(QtCore.QSize(259, 161)) self.label2.setBaseSize(QtCore.QSize(259, 161)) self.label2.setAlignment(QtCore.Qt.AlignCenter) self.gif = QMovie(’1271.gif’) self.label2.setMovie(self.gif) self.label2.setObjectName('label2') self.gif.start() self.timer = QtCore.QTimer(self) self.timer.start(1000) self.timer.timeout.connect(self.start) self.setCursor(QCursor(Qt.PointingHandCursor)) self.show()

邏輯函數(shù)

def start(self): Thread(target=self.setSpeed, daemon=True).start() def setSpeed(self): info = get_data() recv_bytes = gsh(info[0]) # 每秒接收的字節(jié) sent_bytes = gsh(info[1]) # 每秒發(fā)送的字節(jié) self.all_bytes += sum(info) if self.all_bytes<1073741824: all_bytes = self.all_bytes / 1048576 strs='已使用:%.2f Mb'%all_bytes else: all_bytes = self.all_bytes / 1073741824 strs = '已使用:%.2f Gb' % all_bytes self.label.setText('上傳:%sn下載:%sn%s'%(sent_bytes,recv_bytes,strs)

鼠標(biāo)事件

def mouseMoveEvent(self, e: QMouseEvent): # 重寫移動(dòng)事件 self._endPos = e.pos() - self._startPos self.move(self.pos() + self._endPos) def mousePressEvent(self, e: QMouseEvent): if e.button() == Qt.LeftButton: self._isTracking = True self._startPos = QPoint(e.x(), e.y()) if e.button() == Qt.RightButton: menu = QMenu(self) quitAction = menu.addAction('退出程序') aboutAction=menu.addAction('關(guān)于程序') action = menu.exec_(self.mapToGlobal(e.pos())) if action == quitAction:with open(’流量使用情況.txt’, ’w’) as f: f.write(str(self.all_bytes))qApp.quit() if action == aboutAction:msg_box = QtWidgets.QMessageBoxmsg_box.question(self, '關(guān)于', self.about,msg_box.Yes | msg_box.Cancel)if QMessageBox.Yes: webbrowser.open(’https://me.csdn.net/Cxk___’, new=0, autoraise=True) def mouseReleaseEvent(self, e: QMouseEvent): if e.button() == Qt.LeftButton:self._isTracking = Falseself._startPos = Noneself._endPos = None if e.button() == Qt.RightButton:self._isTracking = Falseself._startPos = Noneself._endPos = None

庫(kù)

# -*- coding: utf-8 -*-import timeimport webbrowserfrom PyQt5.QtCore import QSize, QPoint, Qtfrom PyQt5.QtGui import QMouseEvent, QMovie, QCursorfrom PyQt5.QtWidgets import QWidget, QMessageBox, QApplication, QMenu, qAppfrom psutil import net_io_counters #net_io_counters 網(wǎng)絡(luò)輸入與輸出 如果需要獲取單個(gè)網(wǎng)卡的io信息,加上pernic=True參數(shù)。from threading import Threadimport sysfrom qtpy import QtWidgets, QtCore

運(yùn)行

if __name__ == ’__main__’: app = QApplication(sys.argv) ex = Main() sys.exit(app.exec_()

到此這篇關(guān)于python百行代碼自制電腦端網(wǎng)速懸浮窗的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python 電腦端網(wǎng)速懸浮窗內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 高压分散机(高压细胞破碎仪)百科-北京天恩瀚拓| 法兰连接型电磁流量计-蒸汽孔板节流装置流量计-北京凯安达仪器仪表有限公司 | 圣才学习网-考研考证学习平台,提供万种考研考证电子书、题库、视频课程等考试资料 | 全国国际学校排名_国际学校招生入学及学费-学校大全网 | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 硅PU球场、篮球场地面施工「水性、环保、弹性」硅PU材料生产厂家-广东中星体育公司 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 玖容气动液压设备有限公司-气液增压缸_压力机_增压机_铆接机_增压器 | 郑州大巴车出租|中巴车租赁|旅游大巴租车|包车|郑州旅游大巴车租赁有限公司 | 不发火防静电金属骨料_无机磨石_水泥自流平_修补砂浆厂家「圣威特」 | 大型多片锯,圆木多片锯,方木多片锯,板材多片锯-祥富机械有限公司 | 茶叶百科网-茶叶知识与茶文化探讨分享平台| 欧版反击式破碎机-欧版反击破-矿山石料破碎生产线-青州奥凯诺机械 | 中国玩具展_玩具展|幼教用品展|幼教展|幼教装备展 | 找培训机构_找学习课程_励普教育| 喷涂流水线,涂装流水线,喷漆流水线-山东天意设备科技有限公司 | 电动葫芦|防爆钢丝绳电动葫芦|手拉葫芦-保定大力起重葫芦有限公司 | 宁夏活性炭_防护活性炭_催化剂载体炭-宁夏恒辉活性炭有限公司 | 地磅-地秤-江阴/无锡地磅-江阴天亿计量设备有限公司_ | 筛分机|振动筛分机|气流筛分机|筛分机厂家-新乡市大汉振动机械有限公司 | 武汉高低温试验箱_恒温恒湿试验箱厂家-武汉蓝锐环境科技有限公司 | 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 矿用履带式平板车|探水钻机|气动架柱式钻机|架柱式液压回转钻机|履带式钻机-启睿探水钻机厂家 | 盐水蒸发器,水洗盐设备,冷凝结晶切片机,转鼓切片机,絮凝剂加药系统-无锡瑞司恩机械有限公司 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | 对照品_中药对照品_标准品_对照药材_「格利普」高纯中药标准品厂家-成都格利普生物科技有限公司 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 干洗加盟网-洗衣店品牌排行-干洗设备价格-干洗连锁加盟指南 | 京港视通报道-质量走进大江南北-京港视通传媒[北京]有限公司 | 液压升降平台_剪叉式液压/导轨式升降机_传菜机定做「宁波日腾升降机厂家」 | 玻璃钢型材-玻璃钢风管-玻璃钢管道,生产厂家-[江苏欧升玻璃钢制造有限公司] | 南京泽朗生物科技有限公司-液体饮料代加工_果汁饮料代加工_固体饮料代加工 | 坏男孩影院-提供最新电影_动漫_综艺_电视剧_迅雷免费电影最新观看 | 国际金融网_每日财经新资讯网| 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 仓储货架_南京货架_钢制托盘_仓储笼_隔离网_环球零件盒_诺力液压车_货架-南京一品仓储设备制造公司 | 杭州可当科技有限公司—流量卡_随身WiFi_AI摄像头一站式解决方案 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | 中红外QCL激光器-其他连续-半导体连续激光器-筱晓光子 | 断桥铝破碎机_发动机破碎机_杂铝破碎机厂家价格-皓星机械 |