当前位置: 首页 > news >正文

网盘建网站什么是网络广告

网盘建网站,什么是网络广告,可以自己做论坛网站吗,做企业网站类型基于PyQt5的图形化界面开发——Windows内存资源监视助手[附带编译exe教程] 0. 前言1. 资源信息获取函数——monitor.py2. UI界面——listen.py3. main.py4. 运行效果5. 编译 exe 程序6. 其他PyQt文章 0. 前言 利用 PyQt5 开发一个 windows 的资源监视助手,在使用虚…

基于PyQt5的图形化界面开发——Windows内存资源监视助手[附带编译exe教程]

  • 0. 前言
  • 1. 资源信息获取函数——monitor.py
  • 2. UI界面——listen.py
  • 3. main.py
  • 4. 运行效果
  • 5. 编译 exe 程序
  • 6. 其他PyQt文章

0. 前言

利用 PyQt5 开发一个 windows 的资源监视助手,在使用虚拟机的时候有大用,因为某些缘故我需要同时开启多个虚拟机,开多了往往会卡,所以需要进行简单拿到监视内存看看是否内存够用。

操作系统:Windows10 专业版

开发环境:Pycahrm Comunity 2022.3

Python解释器版本:Python3.8

第三方库:PyQt5、psutil

显示器分辨率:1920 x 1080

1. 资源信息获取函数——monitor.py

使用下面这个函数来获取内存、CPU等资源信息

# code:utf-8
# Create by Maxtang
# 2023/5/3
import psutildef monitor():mem = psutil.virtual_memory()# 系统总计内存cpu = psutil.cpu_percent(interval=0.2)percent = mem.used / mem.total# 内存总量total = float(mem.total) / 1024 / 1024 / 1024# 已经使用used = float(mem.used) / 1024 / 1024 / 1024# 剩余量free = float(mem.free) / 1024 / 1024 / 1024# cpu占用cpu = str(cpu)[:4]# 内存占用百分比percent = str(percent)[:6]used = str(used)[:4]free = str(free)[:4]total = str(total)[:4]# li = [cpu, total,used,free,percent]# print(li)data = {"cpu":cpu,"total":total,"used":used,"free":free,"percent":percent}return dataif __name__ == '__main__':print(monitor())

效果如下:
在这里插入图片描述

2. UI界面——listen.py

这个就没什么好说的,创建一个Python文件命名为 listen.py 就好了

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file '.\listen.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(355, 135)self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.widget = QtWidgets.QWidget(self.centralwidget)self.widget.setGeometry(QtCore.QRect(0, 0, 352, 39))self.widget.setObjectName("widget")self.gridLayout = QtWidgets.QGridLayout(self.widget)self.gridLayout.setContentsMargins(0, 0, 0, 0)self.gridLayout.setObjectName("gridLayout")self.label_6 = QtWidgets.QLabel(self.widget)self.label_6.setAlignment(QtCore.Qt.AlignCenter)self.label_6.setObjectName("label_6")self.gridLayout.addWidget(self.label_6, 1, 1, 1, 1)self.label_4 = QtWidgets.QLabel(self.widget)self.label_4.setAlignment(QtCore.Qt.AlignCenter)self.label_4.setObjectName("label_4")self.gridLayout.addWidget(self.label_4, 0, 3, 1, 1)self.label_3 = QtWidgets.QLabel(self.widget)self.label_3.setAlignment(QtCore.Qt.AlignCenter)self.label_3.setObjectName("label_3")self.gridLayout.addWidget(self.label_3, 0, 2, 1, 1)self.label = QtWidgets.QLabel(self.widget)self.label.setAlignment(QtCore.Qt.AlignCenter)self.label.setObjectName("label")self.gridLayout.addWidget(self.label, 0, 0, 1, 1)self.label_8 = QtWidgets.QLabel(self.widget)self.label_8.setAlignment(QtCore.Qt.AlignCenter)self.label_8.setObjectName("label_8")self.gridLayout.addWidget(self.label_8, 1, 2, 1, 1)self.label_5 = QtWidgets.QLabel(self.widget)self.label_5.setAlignment(QtCore.Qt.AlignCenter)self.label_5.setObjectName("label_5")self.gridLayout.addWidget(self.label_5, 1, 0, 1, 1)self.label_7 = QtWidgets.QLabel(self.widget)self.label_7.setAlignment(QtCore.Qt.AlignCenter)self.label_7.setObjectName("label_7")self.gridLayout.addWidget(self.label_7, 1, 3, 1, 1)self.label_2 = QtWidgets.QLabel(self.widget)self.label_2.setObjectName("label_2")self.gridLayout.addWidget(self.label_2, 0, 1, 1, 1)self.widget1 = QtWidgets.QWidget(self.centralwidget)self.widget1.setGeometry(QtCore.QRect(30, 40, 295, 30))self.widget1.setObjectName("widget1")self.horizontalLayout = QtWidgets.QHBoxLayout(self.widget1)self.horizontalLayout.setContentsMargins(0, 0, 0, 0)self.horizontalLayout.setObjectName("horizontalLayout")self.pushButton = QtWidgets.QPushButton(self.widget1)self.pushButton.setObjectName("pushButton")self.horizontalLayout.addWidget(self.pushButton)self.pushButton_2 = QtWidgets.QPushButton(self.widget1)self.pushButton_2.setObjectName("pushButton_2")self.horizontalLayout.addWidget(self.pushButton_2)self.pushButton_3 = QtWidgets.QPushButton(self.widget1)self.pushButton_3.setObjectName("pushButton_3")self.horizontalLayout.addWidget(self.pushButton_3)MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 355, 26))self.menubar.setDefaultUp(False)self.menubar.setNativeMenuBar(False)self.menubar.setObjectName("menubar")MainWindow.setMenuBar(self.menubar)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "Windows资源监视器"))self.label_6.setText(_translate("MainWindow", "TextLabel"))self.label_4.setText(_translate("MainWindow", "内存占用百分比"))self.label_3.setText(_translate("MainWindow", "剩余内存/G"))self.label.setText(_translate("MainWindow", "CPU"))self.label_8.setText(_translate("MainWindow", "TextLabel"))self.label_5.setText(_translate("MainWindow", "TextLabel"))self.label_7.setText(_translate("MainWindow", "TextLabel"))self.label_2.setText(_translate("MainWindow", "内存占用/G"))self.pushButton.setText(_translate("MainWindow", "启动"))self.pushButton_2.setText(_translate("MainWindow", "终止"))self.pushButton_3.setText(_translate("MainWindow", "退出"))

3. main.py

下面这个就是main函数,你需要先创建以上文件 [monitor.py、listen.py] ,否则将会报错无法运行

import sys
from PyQt5 import  QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *import listen
from monitor import monitor
import timeclass UI(QMainWindow, listen.Ui_MainWindow):def __init__(self):super(UI, self).__init__()self.setupUi(self)self.pushButton.clicked.connect(lambda:{self.start(),self.fun()})self.pushButton_2.clicked.connect(lambda:{self.join(),self.fun()})self.pushButton_3.clicked.connect(lambda:{exit(0)})self.move((1920-355)//2,1080-120)# 隐藏任务栏图标self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.SplashScreen | Qt.FramelessWindowHint | Qt.FramelessWindowHint)# 设置窗口背景透明self.setWindowOpacity(0.85)  # 设置窗口透明度self.setAttribute(Qt.WA_TranslucentBackground)  # 设置窗口背景透明# # 设置按钮透明# op = QtWidgets.QGraphicsOpacityEffect()# op.setOpacity(0.35) # 设置透明度的值,0.0到1.0,最小值0是透明,1是不透明# self.pushButton.setGraphicsEffect(op)global flagflag = 0def start(self):global flagflag = 1# print("start")def join(self):global flagflag = 0# print("join")def fun(self):# print("ok")while flag == 1:data = monitor()self.label_5.setText("{}%".format(data["cpu"]))self.label_6.setText("{}/{}G".format(data["used"],data["total"]))self.label_8.setText("{}/{}G".format(data["free"],data["total"]))self.label_7.setText("{:.2f}%".format(float(data["percent"])*100))QtWidgets.QApplication.processEvents()time.sleep(0.2)app = QtWidgets.QApplication(sys.argv)
main = UI()
main.show()
sys.exit(app.exec_())

4. 运行效果

按下启动按键之后,就会开始监视计算机的CPU资源,它是刚好浮于状态栏上方的,这个位置被我调整过。而且由于下面的代码,导致它不显示选项卡和任务栏图标:

self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.SplashScreen | Qt.FramelessWindowHint | Qt.FramelessWindowHint)

在这里插入图片描述

5. 编译 exe 程序

为了避免每次都需要打开Pycharm项目,我决定将它编译为 exe 程序,这样一来我只需要双机程序就能运行了

Python不像C语言,需要我们安装第三方库来进行编译。

第三方库:Pyinstaller,首先你需要安装 Pyinstaller 库,如果你还不会安装库,你可以参考我的这个文章来学习:

Python第三方库安装——使用vscode、pycharm安装Python第三方库

在我们的项目所在目录打开 PowerShell
在这里插入图片描述
然后输入以下命令:

Pyinstaller -F main.py

在这里插入图片描述

历时30多秒后控制台提示我们编译成功:
在这里插入图片描述
这时候回到你的项目目录下,在这个里面,你能找到你编译好的程序:
在这里插入图片描述
双击它就可以运行啦!
在这里插入图片描述

我给它增加了一点其他功能,让它不只是资源监视那么简单,我增加了一个爬虫来爬取我csdn的状态信息,为了不被系统检测到爬虫攻击,我选择的是使用手动更新按钮:
在这里插入图片描述

在这里插入图片描述

6. 其他PyQt文章

如果你对 PyQt 学习有点兴趣,你可以看看我的其他PyQt文章:

基于PyQt5的图形化界面开发——自制MQTT客户端软件
基于PyQt5的图形化界面开发——自制Redis图形化客户端
基于PyQt5的图形化界面开发——模拟医院管理系统
基于PyQt5的图形化界面开发——PyQt示例_计算器
基于PyQt5的图形化界面开发——PyQt示例_扫雷

http://www.yayakq.cn/news/896041/

相关文章:

  • 网站正在维护模板中国十大网站域名
  • 谷歌chromeseo移动端排名优化
  • 本地高端网站建设信息大全php做网站项目的思路
  • 嘉兴h5建站什么是我的wordpress
  • 松原市新闻萧山市seo关键词排名
  • 开发 程序网站有哪些网站可以做店面设计
  • 巨腾外贸网站建设公司wordpress 缩略图判断
  • 宿州专业网站建设公司关于单位网站建设的
  • 长春seo优化网站优化 福州
  • 做网站的科技公司铁路建设监理协会网站
  • 网站设计培训班创业百度信息流推广
  • 龙岩做网站开发哪家公司好制作短视频的软件有哪些
  • 课程网站开发背景自助建微网站
  • 做网站的服务器用什么 系统好招聘网站建设方案模板下载
  • 加强网站政务服务建设方案哪个网站做物业贷
  • 互网站开发维护成本高字体设计 创意免费
  • 玉林市住房和城乡建设局网站设计在线接单
  • 深圳网站制作哪里好如何在网上推广app
  • 东莞建设一个网站2022年最新十条新闻
  • 北京城乡与建设厅官方网站查询网页制作学情分析
  • 从优化角度来建设网站设计公司前十名
  • 网站开发一般用什么软件有哪些电脑维修 做网站
  • 想要建设一个网站都需要注意什么电商网站开发系统架构
  • flash 网站管理系统wordpress怎么修改
  • 四川建设局网站洛阳最好的做网站的公司
  • 个人作品网站怎么做郑州设计网页的公司
  • 多语言网站(如何实现网站的多语言版本 )js音乐网站模板
  • 手机网站引导页js插件环保公司网站模版
  • vps 建网站 代理建设电子商务网站需要什么设备
  • 专业网站是什么意思网络销售怎么做才能做好