日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

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

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

前言

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

預覽

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

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

文件結構

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

運行管理

開始運行時內(nèi)存消耗18.3m,cpu,磁盤,網(wǎng)絡不占用。

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

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

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

整體思路

使用psuti.net_io_counters 監(jiān)控電腦網(wǎng)卡IO 將流量數(shù)據(jù)格式化,統(tǒng)計每次數(shù)據(jù)總和保存在本地《流量使用情況.txt》(這個是個缺陷,我只用txt保存,用戶可以隨意更改,后期完善一下加密保存,隱藏文件信息。) PyQt窗口制作,兩個label,一個網(wǎng)速信息,一個動態(tài)圖展示,隱藏窗口標題欄,任務欄,窗口全屏幕隨意移動,鼠標放到窗口樣式變?yōu)樽ナ?,鼠標右鍵菜單欄,退出程序,軟件關于。 退出程序時保存流量總和信息到文件,下次啟動先讀取流量總和數(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)計信息 recv_bytes = net_info.bytes_recv sent_bytes = net_info.bytes_sent old[0] += recv_bytes old[1] += sent_bytes time.sleep(1) # 當前所收集的數(shù)據(jù) net_info = net_io_counters() # 獲取流量統(tǒng)計信息 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)絡的上傳跟下載網(wǎng)速。n統(tǒng)計網(wǎng)絡使用總流量!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) # 設置窗口背景透明 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)

鼠標事件

def mouseMoveEvent(self, e: QMouseEvent): # 重寫移動事件 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('關于程序') 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, '關于', 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

# -*- 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)絡輸入與輸出 如果需要獲取單個網(wǎng)卡的io信息,加上pernic=True參數(shù)。from threading import Threadimport sysfrom qtpy import QtWidgets, QtCore

運行

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

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

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久精品午夜少妇| 日韩专区欧美专区| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲在线观看| 久久中文在线| 性欧美69xoxoxoxo| 亚洲丝袜美腿一区| 精品视频免费| 亚洲综合另类| 91麻豆国产自产在线观看亚洲| 亚洲大全视频| 国产精选在线| 日韩av中文字幕一区二区三区| 成人免费网站www网站高清| 日韩**一区毛片| 香蕉国产精品| 国产精品视频一区视频二区| 国精品一区二区| 高清久久一区| 日韩高清不卡一区二区| 亚洲专区在线| jiujiure精品视频播放| 国产精品成久久久久| 婷婷视频一区二区三区| 久久国产99| 视频一区欧美日韩| 日本成人精品| 国产欧美另类| 色一区二区三区| 三级在线看中文字幕完整版| 精品久久久网| 亚洲网站视频| 日本成人手机在线| 天堂√8在线中文| 久久久久亚洲精品中文字幕| av在线资源| 国精品产品一区| 日韩视频网站在线观看| 亚洲播播91| 在线亚洲国产精品网站| 蜜臀精品一区二区三区在线观看| 亚洲最新无码中文字幕久久| 欧美一区二区三区免费看| 亚洲视频国产精品| 亚洲人成网站在线在线观看| 91精品一区二区三区综合| 国产成人精选| 福利一区和二区| 蜜臀久久久99精品久久久久久| 一区二区三区四区日本视频| 婷婷亚洲五月| 国产人成精品一区二区三| 日韩国产在线| 日韩av一区二区在线影视| 日韩二区在线观看| 国产一区二区中文| 欧美极品中文字幕| 最新亚洲国产| 中文字幕色婷婷在线视频| 国产精品22p| 一区二区三区国产盗摄| 亚洲啊v在线| 视频一区二区三区入口| 欧美日韩a区| 欧美日韩水蜜桃| 日韩av黄色在线| 97精品国产一区二区三区| 久久麻豆视频| 蜜桃国内精品久久久久软件9| 手机在线电影一区| 免费日韩视频| 久久麻豆视频| 蜜桃久久av| 欧美aa在线观看| 久久国产精品久久w女人spa| 88久久精品| 99久久www免费| 欧美久久精品一级c片| 先锋亚洲精品| 91视频一区| 日韩精品亚洲专区在线观看| 亚洲五月婷婷| 国产精品v日韩精品v欧美精品网站 | 91久久黄色| 911亚洲精品| 国产午夜精品一区二区三区欧美 | 国产理论在线| 日韩福利在线观看| 久久一级电影| 国产中文字幕一区二区三区| 亚洲欧美日韩精品一区二区| 国产日韩一区二区三区在线播放| 日韩精品首页| 麻豆中文一区二区| 欧美亚洲激情| 久久久久久久久久久妇女| 精品国产网站| 久久九九99| 日本精品不卡| av一区在线| 日韩在线观看一区| 欧美激情日韩| 国产美女高潮在线| 99精品网站| 久久久蜜桃一区二区人| 欧美日韩精品免费观看视频完整| 99精品电影| 久久精品av麻豆的观看方式| 国产亚洲欧美日韩精品一区二区三区 | 久久久精品久久久久久96 | 亚洲狼人精品一区二区三区| 1024精品久久久久久久久| 久久一区二区三区喷水| 久久国产亚洲精品| 国产成人久久精品麻豆二区| 91亚洲国产| 少妇精品导航| 四虎4545www国产精品| 国产一区清纯| 伊人精品一区| 精品一区二区三区亚洲 | 国产欧美日韩精品一区二区免费 | 国产精品日本一区二区不卡视频| 亚洲精品极品少妇16p| 亚洲风情在线资源| 久久国产精品毛片| 国产探花一区二区| 天堂中文在线播放| 免费在线看一区| 日韩一区二区三区精品 | 亚洲手机在线| 国产亚洲一区| 亚洲成a人片| 中文精品视频| 国产欧美日韩在线一区二区| 久久久久久久久久久9不雅视频| 香蕉成人久久| 日韩在线综合| 国产日韩欧美一区| 国产国产精品| 国产精久久久| 亚洲综合二区| 五月天久久777| 亚洲精品国产嫩草在线观看| 日本视频一区二区| 欧美天堂视频| 久久av导航| 亚洲aa在线| 蜜臀a∨国产成人精品| 亚洲精品在线影院| 亚洲尤物av| 久久99精品久久久久久园产越南| 亚洲小说春色综合另类电影| 午夜国产精品视频免费体验区| 日韩精品一级中文字幕精品视频免费观看| 另类综合日韩欧美亚洲| 日本在线一区二区三区| 久久亚洲国产精品尤物| 三级在线观看一区二区 | 日韩不卡在线观看日韩不卡视频| 国产精品91一区二区三区| 精品视频久久| 亚洲精品激情| 午夜在线一区| 亚洲一区二区三区高清不卡| 亚洲午夜久久久久久尤物| 欧美中文一区二区| 中文日韩在线| 久久亚洲国产| 精品一区在线| 一区福利视频| 夜夜精品视频| 欧美日本久久| 国产日韩欧美| 成人国产精品一区二区网站| 精品久久久中文字幕| 在线看片国产福利你懂的| 蜜桃视频欧美| 伊人影院久久| 一区二区三区午夜视频| 欧美天堂一区二区| 国产精品久久久久久久久免费高清| 欧美+亚洲+精品+三区| 精品久久福利| 尤物在线精品| 欧美羞羞视频| 999久久久国产精品| 国产福利一区二区精品秒拍| 在线亚洲欧美| 在线日韩中文| 99精品美女| av中文字幕在线观看第一页 | 国内自拍视频一区二区三区| 丝袜美腿成人在线| 日韩电影在线视频| 日本欧美久久久久免费播放网| 亚洲欧美综合| 久久精品国语| 欧美肉体xxxx裸体137大胆| 欧美aa在线观看|