Moniteur de système Linux utilisant Tkinter

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, vous allez apprendre à créer un moniteur de système Linux à l'aide de Python et de la bibliothèque Tkinter. Le moniteur de système affichera des informations en temps réel sur le CPU, la mémoire vive, l'utilisation du disque et les statistiques réseau.

👀 Aperçu

Aperçu de l'interface graphique utilisateur du moniteur de système Linux

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment créer une interface graphique utilisateur (GUI) à l'aide de Tkinter.
  • Comment utiliser la bibliothèque psutil pour obtenir des informations système en temps réel.
  • Comment afficher l'utilisation du CPU, l'utilisation de la mémoire vive, l'utilisation du disque et les statistiques réseau.

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Créer une GUI en Python à l'aide de Tkinter.
  • Utiliser la bibliothèque psutil pour obtenir des informations système.
  • Mettre à jour des étiquettes avec des données en temps réel.
  • Organiser des informations à l'aide de cadres et de widgets de carnet.

Créer les fichiers du projet

Créez un fichier nommé linux_system_monitor.py et ouvrez-le dans votre éditeur de texte.

cd ~/projet
touch linux_system_monitor.py
✨ Vérifier la solution et pratiquer

Créer l'interface graphique utilisateur (GUI)

Ajoutez le code suivant pour créer l'interface graphique utilisateur (GUI) du moniteur de système :

import tkinter as tk
from tkinter import ttk
import psutil

root = tk.Tk()
root.title('Linux System Monitor')

Installez la bibliothèque psutil à l'aide de la commande suivante :

sudo pip install psutil
✨ Vérifier la solution et pratiquer

Créer un widget de carnet pour séparer les catégories d'informations

Ajoutez le code suivant pour créer un widget de carnet, qui nous permet de séparer les différentes catégories d'informations système :

notebook = ttk.Notebook(root)
notebook.pack()

Nous ajouterons des cadres au carnet dans l'étape suivante.

✨ Vérifier la solution et pratiquer

Créer des cadres

Ajoutez le code suivant pour créer des cadres pour chaque catégorie d'informations système :

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)

Dans le code ci-dessus, nous créons quatre cadres, un pour chaque catégorie d'informations système. Le paramètre padding ajoute un rembourrage de 10 pixels autour de chaque cadre.

✨ Vérifier la solution et pratiquer

Ajouter des cadres au carnet

Ajoutez le code suivant pour ajouter les cadres au carnet :

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')

Nous ajoutons les cadres au carnet en utilisant la méthode add(). Le paramètre text spécifie le texte qui sera affiché sur l'onglet pour chaque cadre.

✨ Vérifier la solution et pratiquer

Créer des étiquettes pour les cadres

Ajoutez le code suivant pour créer des étiquettes pour chaque cadre :

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()

Ces étiquettes seront remplies d'informations système en temps réel dans l'étape suivante.

✨ Vérifier la solution et pratiquer

Remplir les étiquettes avec des informations en temps réel

Ajoutez le code suivant pour mettre à jour les étiquettes avec des informations système en temps réel :

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()

La fonction update_labels() est appelée toutes les secondes en utilisant la méthode after(). La méthode after() prend deux paramètres : le temps en millisecondes et la fonction à appeler.

✨ Vérifier la solution et pratiquer

Exécuter le projet

Pour exécuter le projet, ajoutez le code suivant à la fin de votre fichier :

root.mainloop()

Enfin, basculez sur le bureau et exécutez le projet en utilisant la commande suivante :

python linux_system_monitor.py
Capture d'écran de la commande d'exécution du projet
✨ Vérifier la solution et pratiquer

Sommaire

Dans ce projet, vous avez appris à créer un moniteur de système Linux à l'aide de Python et de la bibliothèque Tkinter. Le moniteur de système affiche des informations en temps réel sur le CPU, la RAM, l'utilisation du disque et les statistiques réseau. En suivant les instructions étape par étape et en exécutant le code, vous avez créé avec succès un moniteur de système fonctionnel.