Python+drawpad实现CPU监控小程序
作者:小木_. 发布时间:2022-05-30 19:54:38
标签:Python,CPU,监控
CPU活动展示
导入模块,创建画板,创建画笔进行绘画出cpu的数据,一定要用线程,负责会卡住哦
实现代码
import tkinter
from tkinter import *
import psutil
import time
import win32api,win32con,win32gui
from threading import Thread
root_Terminal = Tk()
root_Terminal.title('贱工坊-CPU活动数据')
# 窗口的大小及页面的显示位置
root_Terminal.geometry(
f"600x100+{(win32api.GetSystemMetrics(win32con.SM_CXSCREEN) - 600) // 2}+{(win32api.GetSystemMetrics(win32con.SM_CYSCREEN) - 100) // 2}")
root_Terminal.resizable(False, False) # 固定页面不可放大缩小
root_Terminal.configure(background='#333333')
# 新画框
drawpad = Canvas(root_Terminal, width=600, height=400, bg='#333333')
drawpad.place(x=-2,y=0)
# 文本框
text_1 = tkinter.Text(root_Terminal, width=14, heigh=2, bg='#333333', undo=True, fg='#ffffff',
font=("黑体",12),borderwidth=0)
text_1.place(x=20, y=20)
text_1.insert(tkinter.INSERT, 'CPU使用率:\n0%')
text_1.config(state=DISABLED) # 禁用状态
def CPU():
# CPU展示数据框架 -1 画出长方形CPU框架
drawpad.create_polygon(150, 0, 600, 0, 600, 62, 150, 62, fill='#232323') # CPU框架 左上 右上 右下 左下
H_CPU = [590] # CPU默认值
S_CPU = [60] # CPU默认值
while True:
A_CPU = psutil.cpu_percent(1) # CPU
# CPU展示数据框架 -2 用来遮盖上一次的数据 防止重叠在一起难看
drawpad.create_polygon(150, 0, 600, 0, 600, 62, 150, 62, fill='#232323') # CPU框架 左上 右上 右下 左下
for a in range(len(H_CPU)-1): # 画图CPU 数据
if len(H_CPU) == 1: # 值为1则表示刚开始暂无数据
drawpad.create_line(H_CPU[a], S_CPU[a], H_CPU[a] + 10, 60-A_CPU*0.6, fill='#00e500') # 使用画笔画出折线
else:drawpad.create_line(H_CPU[a], S_CPU[a], H_CPU[a] + 10, S_CPU[a+1], fill='#00e500') # 使用画笔画出折线
text_1.config(state=NORMAL) # 启动状态
# 清空
text_1.delete(1.0, END)
text_1.insert(tkinter.INSERT, f'CPU使用率:\n{A_CPU}%')
text_1.config(state=DISABLED) # 禁用状态
H_CPU = H_CPU + [600]
J = [] # 创建临时列表装饰器
for sdss in H_CPU:
J = J + [sdss - 10]
H_CPU = J # 替换列表数据
S_CPU = S_CPU + [60 - A_CPU*0.6]
# 删除列表第一个数据
if len(H_CPU) == 46: # 不能超过46次
# 删除列表元素 防止数据超出
del H_CPU[0]
del S_CPU[0]
# 创建线程并启动
Thread(target=CPU).start()
root_Terminal.mainloop() # 运行
来源:https://jiangongfang.blog.csdn.net/article/details/126457631


猜你喜欢
- 多个字段模糊查询, 括号中的下划线是双下划线,双下划线前是字段名,双下划线后可以是icontains或contains,区别是是否大小写敏感
- 左为旧版,右为更新到1.0版本后的名字定义变量的更新tf.VARIABLES ——> tf.GLOBAL_VARIABLEStf.al
- 今天尝试了一下据说最好用的编译器Jupyter Lab,安装期间遇到了很多问题,以此为记录。1.安装jupyter labjupyter l
- 一、PHP动态生成第一步:在PHP文件中直接写入JS代码,并在头部声明这是一个JavaScript文件<?php header(
- 前言:Unittest又名单元测试,主要用于测试自己写的代码的正确性和完备性,也方便自己和他人对代码的维护。在软件开发过程中,测试驱动开发的
- 由于不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对C
- 今天看到一个教程,是关于Python安装pygame模块的。觉得很好,拿来分享一下。安装Python额,这个小题貌似在这里很是多余啊。但是为
- JavaScript/Dom中有很多很零碎的东西,让人总是感觉理解的有些“朦胧”,因此,有时候还是应该总结一下,对于Event对象,前两天看
- 一、mongodb安装在官网下载适应于自己平台的mongodb,在此安装环境为Windows7-64bit下载完成后直接安装,连续点击nex
- hmac模块hmac模块用于生成HMAC码。这个HMAC码可以用于验证消息的完整性,其原理也很简单,就是一种加入了密钥的消息摘要,相比起MA
- Python not equal operator returns True if two variables are of same ty
- 前言最近有朋友在做投票的项目,里面有用到一个倒计时的组件,还想要个动画效果。cv * 浸染多年的我,首先想到的是直接找个现有的组件。通过一通搜
- 现在公布方法:替换editor.js 函数 // Toolbar button onmouseup
- 对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于
- python的开发工具有很多种,各有特点,本人一直使用的是pycharm,所以本篇内容仅限pycharm。1,设置python文件头模板当我
- 基础知识-----黄金分割法960px宽度的网格设计的好处无需我多说了,下面主要是复习一下如何作图求出960px宽度下的黄金分割点1、首先沿
- 1.OUPUT参数返回值CREATE PROCEDURE [dbo].[nb_order_insert](@o_buyerid int ,@
- GO类型转换及与C的类型转换类型转换语法dst := float32(src)示例var num int = 520f32 := float
- 1. pathlib库介绍相比常用的 os.path 而言,pathlib 对于目录路径的操作更简洁也更贴近 Pythonic(Python
- 一:背景以及项目结构介绍第一次将自己做的python爬虫项目打包成exe,搜了很多网上教程,大部分都是打包一个py文件的小demo,这里先给