最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年05月12日 10:03:37   作者:旋凱凱旋  
這篇文章主要介紹了python百行代碼自制電腦端網(wǎng)速懸浮窗的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

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

預(yù)覽

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

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

運(yùn)行管理

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


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

整體思路

  • 使用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è)動態(tài)圖展示,隱藏窗口標(biāo)題欄,任務(wù)欄,窗口全屏幕隨意移動,鼠標(biāo)放到窗口樣式變?yōu)樽ナ郑髽?biāo)右鍵菜單欄,退出程序,軟件關(guān)于。
  • 退出程序時(shí)保存流量總和信息到文件,下次啟動先讀取流量總和數(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("上傳:%s\n下載:%s\n%s"%(sent_bytes,recv_bytes,strs)

鼠標(biāo)事件

 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("關(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.QMessageBox
        msg_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 = False
        self._startPos = None
        self._endPos = None
      if e.button() == Qt.RightButton:
        self._isTracking = False
        self._startPos = None
        self._endPos = None

# -*- coding: utf-8 -*-
import time
import webbrowser

from PyQt5.QtCore import QSize, QPoint, Qt
from PyQt5.QtGui import QMouseEvent, QMovie, QCursor
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication, QMenu, qApp
from psutil import net_io_counters #net_io_counters 網(wǎng)絡(luò)輸入與輸出 如果需要獲取單個(gè)網(wǎng)卡的io信息,加上pernic=True參數(shù)。
from threading import Thread
import sys
from 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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫代碼實(shí)例

    基于python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫代碼實(shí)例

    這篇文章主要介紹了基于python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • python+selenium實(shí)現(xiàn)163郵箱自動登陸的方法

    python+selenium實(shí)現(xiàn)163郵箱自動登陸的方法

    本篇文章主要介紹了python+selenium實(shí)現(xiàn)163郵箱自動登陸的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • Python中文分詞實(shí)現(xiàn)方法(安裝pymmseg)

    Python中文分詞實(shí)現(xiàn)方法(安裝pymmseg)

    這篇文章主要介紹了Python中文分詞實(shí)現(xiàn)方法,通過安裝pymmseg來實(shí)現(xiàn)分詞功能,涉及pymmseg的下載、解壓、安裝及使用技巧,需要的朋友可以參考下
    2016-06-06
  • python多種數(shù)據(jù)類型輸出為Excel文件

    python多種數(shù)據(jù)類型輸出為Excel文件

    本文主要介紹了將Python中的列表、元組、字典和集合等數(shù)據(jù)類型輸出到Excel文件中,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • Python對中國500強(qiáng)排行榜數(shù)據(jù)進(jìn)行可視化分析實(shí)戰(zhàn)

    Python對中國500強(qiáng)排行榜數(shù)據(jù)進(jìn)行可視化分析實(shí)戰(zhàn)

    這篇文章主要介紹了Python對中國500強(qiáng)排行榜數(shù)據(jù)進(jìn)行可視化分析實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 基于Python 中函數(shù)的 收集參數(shù) 機(jī)制

    基于Python 中函數(shù)的 收集參數(shù) 機(jī)制

    今天小編就為大家分享一篇基于Python 中函數(shù)的 收集參數(shù) 機(jī)制,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python matplotlib餅狀圖參數(shù)及用法解析

    python matplotlib餅狀圖參數(shù)及用法解析

    這篇文章主要介紹了python matplotlib餅狀圖參數(shù)及用法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python?Asyncio庫之a(chǎn)syncio.task常用函數(shù)詳解

    Python?Asyncio庫之a(chǎn)syncio.task常用函數(shù)詳解

    Asyncio在經(jīng)過一段時(shí)間的發(fā)展以及獲取Curio等第三方庫的經(jīng)驗(yàn)來提供更多的功能,目前高級功能也基本完善。本文主要介紹了Asyncio庫中asyncio.task常用函數(shù)的使用,需要的可以參考一下
    2023-03-03
  • python結(jié)合opencv實(shí)現(xiàn)人臉檢測與跟蹤

    python結(jié)合opencv實(shí)現(xiàn)人臉檢測與跟蹤

    在Python下用起來OpenCV很爽,代碼很簡潔,很清晰易懂。使用的是Haar特征的分類器,訓(xùn)練之后得到的數(shù)據(jù)存在一個(gè)xml中。下面我們就來詳細(xì)談?wù)劇?/div> 2015-06-06
  • Python 繪制北上廣深的地鐵路線動態(tài)圖

    Python 繪制北上廣深的地鐵路線動態(tài)圖

    這篇文章主要介紹了用python制作北上廣深——地鐵線路動態(tài)圖,文中的示例代碼講解詳細(xì),對我們的工作或?qū)W習(xí)都有一定的價(jià)值,感興趣的同學(xué)可以學(xué)習(xí)一下
    2021-12-12

最新評論

利川市| 容城县| 遵化市| 成都市| 金昌市| 隆尧县| 竹北市| 怀柔区| 扎赉特旗| 修武县| 沁阳市| 肥西县| 农安县| 积石山| 阳高县| 类乌齐县| 宝应县| 盐池县| 麦盖提县| 海原县| 炎陵县| 夏邑县| 大余县| 军事| 郁南县| 扶绥县| 巴林右旗| 蒲江县| 清河县| 平原县| 新巴尔虎右旗| 大新县| 抚顺县| 桂平市| 团风县| 厦门市| 澳门| 余庆县| 仙游县| 冷水江市| 开鲁县|