介绍
在这个项目中,你将学习如何使用 Python 和 Tkinter 库创建一个 Linux 系统监视器。该系统监视器将显示有关 CPU、内存、磁盘使用情况和网络统计信息的实时数据。
👀 预览

🎯 任务
在这个项目中,你将学习:
- 如何使用 Tkinter 创建图形用户界面(GUI)。
- 如何使用
psutil库获取实时系统信息。 - 如何显示 CPU 使用情况、内存使用情况、磁盘使用情况和网络统计信息。
🏆 成果
完成这个项目后,你将能够:
- 使用 Tkinter 在 Python 中创建 GUI。
- 使用
psutil库获取系统信息。 - 使用实时数据更新标签。
- 使用框架和笔记本小部件组织信息。
创建项目文件
创建一个名为 linux_system_monitor.py 的文件,并在文本编辑器中打开它。
cd ~/project
touch linux_system_monitor.py
创建图形用户界面
添加以下代码以创建系统监视器的图形用户界面(GUI):
import tkinter as tk
from tkinter import ttk
import psutil
root = tk.Tk()
root.title('Linux System Monitor')
使用以下命令安装 psutil 库:
sudo pip install psutil
创建笔记本小部件以分隔信息类别
添加以下代码以创建一个笔记本小部件,它使我们能够分隔不同类别的系统信息:
notebook = ttk.Notebook(root)
notebook.pack()
我们将在下一步向笔记本中添加框架。
创建框架
添加以下代码为每个系统信息类别创建框架:
cpu_frame = ttk.Frame(notebook, padding=10)
ram_frame = ttk.Frame(notebook, padding=10)
disk_frame = ttk.Frame(notebook, padding=10)
network_frame = ttk.Frame(notebook, padding=10)
在上述代码中,我们创建了四个框架,每个框架对应一个系统信息类别。padding 参数在每个框架周围添加了 10 像素的内边距。
将框架添加到笔记本中
添加以下代码将框架添加到笔记本:
notebook.add(cpu_frame, text='CPU 信息')
notebook.add(ram_frame, text='内存信息')
notebook.add(disk_frame, text='磁盘信息')
notebook.add(network_frame, text='网络信息')
我们使用 add() 方法将框架添加到笔记本。text 参数指定将在每个框架的标签上显示的文本。
为框架创建标签
添加以下代码为每个框架创建标签:
cpu_percent_label = ttk.Label(cpu_frame)
cpu_percent_label.pack()
ram_percent_label = ttk.Label(ram_frame)
ram_percent_label.pack()
disk_percent_label = ttk.Label(disk_frame)
disk_percent_label.pack()
network_label = ttk.Label(network_frame)
network_label.pack()
下一步将用实时系统信息填充这些标签。
用实时信息填充标签
添加以下代码以使用实时系统信息更新标签:
def update_labels():
cpu_percent = psutil.cpu_percent()
cpu_percent_label.config(text=f'CPU 使用情况:{cpu_percent}%')
ram_percent = psutil.virtual_memory().percent
ram_percent_label.config(text=f'内存使用情况:{ram_percent}%')
disk_percent = psutil.disk_usage('/').percent
disk_percent_label.config(text=f'磁盘使用情况:{disk_percent}%')
network_stats = psutil.net_io_counters()
network_label.config(text=f'网络统计信息:\n发送的字节数:{network_stats.bytes_sent}\n接收的字节数:{network_stats.bytes_recv}')
root.after(1000, update_labels)
update_labels()
函数 update_labels() 使用 after() 方法每秒调用一次。after() 方法接受两个参数:以毫秒为单位的时间和要调用的函数。
运行项目
要运行该项目,请在文件末尾添加以下代码:
root.mainloop()
最后,切换到桌面并使用以下命令运行项目:
python linux_system_monitor.py

总结
在这个项目中,你学习了如何使用 Python 和 Tkinter 库创建一个 Linux 系统监视器。该系统监视器会显示有关 CPU、内存、磁盘使用情况和网络统计信息的实时数据。通过按照逐步说明并执行代码,你成功创建了一个功能正常的系统监视器。



