Введение
В этом проекте вы научитесь создавать монитор системы Linux с использованием Python и библиотеки Tkinter. Монитор системы будет отображать实时информацию о CPU, RAM, использовании диска и статистике сети.
👀 Предварительный просмотр

🎯 Задачи
В этом проекте вы научитесь:
- Создавать графический интерфейс пользователя (GUI) с использованием Tkinter.
- Использовать библиотеку
psutilдля получения实时информации о системе. - Отображать использование CPU, использование RAM, использование диска и статистику сети.
🏆 Достижения
После завершения этого проекта вы сможете:
- Создать GUI в Python с использованием Tkinter.
- Использовать библиотеку
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 для разделения категорий информации
Добавьте следующий код, чтобы создать виджет Notebook, который позволяет нам разделить разные категории системной информации:
notebook = ttk.Notebook(root)
notebook.pack()
В следующем шаге мы добавим рамки в Notebook.
Создайте рамки
Добавьте следующий код, чтобы создать рамки для каждой категории системной информации:
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
Добавьте следующий код, чтобы добавить рамки в Notebook:
notebook.add(cpu_frame, text='CPU Info')
notebook.add(ram_frame, text='RAM Info')
notebook.add(disk_frame, text='Disk Info')
notebook.add(network_frame, text='Network Info')
Мы добавляем рамки в Notebook с использованием метода 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 Usage: {cpu_percent}%')
ram_percent = psutil.virtual_memory().percent
ram_percent_label.config(text=f'RAM Usage: {ram_percent}%')
disk_percent = psutil.disk_usage('/').percent
disk_percent_label.config(text=f'Disk Usage: {disk_percent}%')
network_stats = psutil.net_io_counters()
network_label.config(text=f'Network Stats:\nBytes Sent: {network_stats.bytes_sent}\nBytes Received: {network_stats.bytes_recv}')
root.after(1000, update_labels)
update_labels()
Функция update_labels() вызывается каждую секунду с использованием метода after(). Метод after() принимает два параметра: время в миллисекундах и функцию для вызова.
Запустите проект
Для запуска проекта добавьте следующий код в конец файла:
root.mainloop()
Наконец, переключитесь на рабочий стол и запустите проект с использованием следующей команды:
python linux_system_monitor.py

Резюме
В этом проекте вы узнали, как создать монитор системы Linux с использованием Python и библиотеки Tkinter. Монитор системы отображает актуальную информацию о CPU, RAM, использовании диска и статистике сети. Следуя пошаговым инструкциям и выполняя код, вы успешно создали функциональный монитор системы.



