使用python3中tkinter模块编写一个查看内存容量柱状图的工具
时间: 2024-02-09 21:10:38 浏览: 125
内存查看工具
好的,下面是一个使用Python3中Tkinter模块编写的查看内存容量柱状图的工具示例代码。
```python
import psutil
import tkinter as tk
from tkinter import ttk
def get_memory():
'''获取内存使用情况'''
virtual_memory = psutil.virtual_memory()
used_memory = virtual_memory.used / 1024 / 1024 # 已使用内存,单位MB
available_memory = virtual_memory.available / 1024 / 1024 # 可用内存,单位MB
total_memory = virtual_memory.total / 1024 / 1024 # 总内存,单位MB
memory_percent = virtual_memory.percent # 内存使用率
return used_memory, available_memory, total_memory, memory_percent
def draw_chart(canvas, used_memory, available_memory, total_memory, memory_percent):
'''绘制内存容量柱状图'''
# 清空画布
canvas.delete('all')
# 设置画布大小
canvas_width = 400
canvas_height = 300
canvas.config(width=canvas_width, height=canvas_height)
# 绘制柱状图
used_memory_percent = used_memory / total_memory * 100 # 已使用内存占比
available_memory_percent = available_memory / total_memory * 100 # 可用内存占比
used_memory_height = used_memory_percent / 100 * canvas_height # 已使用内存柱状图高度
available_memory_height = available_memory_percent / 100 * canvas_height # 可用内存柱状图高度
canvas.create_rectangle(50, canvas_height - used_memory_height - 50, 150, canvas_height - 50, fill='red') # 已使用内存柱状图
canvas.create_rectangle(250, canvas_height - available_memory_height - 50, 350, canvas_height - 50, fill='green') # 可用内存柱状图
# 绘制文字标签
canvas.create_text(100, canvas_height - 20, text='已使用内存:{:.1f}MB,占比:{:.1f}%'.format(used_memory, used_memory_percent))
canvas.create_text(300, canvas_height - 20, text='可用内存:{:.1f}MB,占比:{:.1f}%'.format(available_memory, available_memory_percent))
canvas.create_text(canvas_width / 2, 20, text='总内存:{:.1f}MB,内存使用率:{}%'.format(total_memory, memory_percent))
def update_chart():
'''更新内存容量柱状图'''
used_memory, available_memory, total_memory, memory_percent = get_memory()
draw_chart(canvas, used_memory, available_memory, total_memory, memory_percent)
# 定时更新
root.after(1000, update_chart)
# 创建窗口
root = tk.Tk()
root.title('内存容量柱状图')
root.geometry('500x400')
# 创建画布
canvas = tk.Canvas(root)
canvas.pack(fill='both', expand=True)
# 初始化内存容量柱状图
used_memory, available_memory, total_memory, memory_percent = get_memory()
draw_chart(canvas, used_memory, available_memory, total_memory, memory_percent)
# 定时更新内存容量柱状图
root.after(1000, update_chart)
# 运行窗口
root.mainloop()
```
这个工具会使用psutil模块获取当前系统的内存使用情况,然后绘制内存容量柱状图,并在画布上显示内存使用情况的文字标签。在每秒钟更新一次内存容量柱状图。
阅读全文