CPU活动展示
导入模块,创建画板,创建画笔进行绘画出cpu的数据,一定要用线程,负责会卡住哦
实现代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
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() # 运行 |
到此这篇关于Python+drawpad实现CPU监控小程序的文章就介绍到这了,更多相关Python CPU监控内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://jiangongfang.blog.csdn.net/article/details/126457631