Linux-Systemmonitor mit Tkinter

PythonBeginner
Jetzt üben

Einführung

In diesem Projekt lernst du, wie du mithilfe von Python und der Tkinter-Bibliothek einen Linux-Systemmonitor erstellen kannst. Der Systemmonitor wird Echtzeitinformationen über die CPU, den Arbeitsspeicher, die Festplattennutzung und die Netzwerkstatistiken anzeigen.

👀 Vorschau

Vorschau der GUI des Linux-Systemmonitors

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du mithilfe von Tkinter eine grafische Benutzeroberfläche (GUI) erstellst.
  • Wie du die psutil-Bibliothek verwendest, um Echtzeitsysteminformationen zu erhalten.
  • Wie du die CPU-Nutzung, die Arbeitsspeichernutzung, die Festplattennutzung und die Netzwerkstatistiken anzeigst.

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • In Python eine GUI mit Tkinter zu erstellen.
  • Die psutil-Bibliothek zur Erlangung von Systeminformationen zu verwenden.
  • Etiketten mit Echtzeitdaten zu aktualisieren.
  • Informationen mit Hilfe von Frames und Notebook-Widgets zu organisieren.

Erstelle die Projekt-Dateien

Erstelle eine Datei namens linux_system_monitor.py und öffne sie in deinem Texteditor.

cd ~/project
touch linux_system_monitor.py

Erstelle die Benutzeroberfläche (GUI)

Füge folgenden Code hinzu, um die grafische Benutzeroberfläche (GUI) für den Systemmonitor zu erstellen:

import tkinter as tk
from tkinter import ttk
import psutil

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

Installiere die psutil-Bibliothek mit folgendem Befehl:

sudo pip install psutil

Erstelle das Notebook-Widget, um die Informationen in Kategorien zu trennen

Füge folgenden Code hinzu, um ein Notebook-Widget zu erstellen, das es uns ermöglicht, verschiedene Kategorien von Systeminformationen zu trennen:

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

Wir werden im nächsten Schritt Frames zum Notebook hinzufügen.

Erstelle Rahmen

Füge folgenden Code hinzu, um Frames für jede Kategorie von Systeminformationen zu erstellen:

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)

Im obigen Code erstellen wir vier Frames, eines für jede Kategorie von Systeminformationen. Der padding-Parameter fügt einen 10-Pixel-Padding um jedes Frame hinzu.

Füge Rahmen zum Notebook hinzu

Füge folgenden Code hinzu, um die Frames zum Notebook hinzuzufügen:

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

Wir fügen die Frames zum Notebook hinzu, indem wir die add()-Methode verwenden. Der text-Parameter gibt den Text an, der auf dem Tab für jedes Frame angezeigt werden soll.

Erstelle Beschriftungen für die Rahmen

Füge folgenden Code hinzu, um Beschriftungen für jedes Frame zu erstellen:

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

In einem nächsten Schritt werden diese Beschriftungen mit aktuellen Systeminformationen gefüllt.

Fülle die Beschriftungen mit Echtzeitinformationen

Füge folgenden Code hinzu, um die Beschriftungen mit aktuellen Systeminformationen zu aktualisieren:

def update_labels():
    cpu_percent = psutil.cpu_percent()
    cpu_percent_label.config(text=f'CPU-Auslastung: {cpu_percent}%')

    ram_percent = psutil.virtual_memory().percent
    ram_percent_label.config(text=f'RAM-Auslastung: {ram_percent}%')

    disk_percent = psutil.disk_usage('/').percent
    disk_percent_label.config(text=f'Speicherplatz-Auslastung: {disk_percent}%')

    network_stats = psutil.net_io_counters()
    network_label.config(text=f'Netzwerkstatistiken:\nGesendete Bytes: {network_stats.bytes_sent}\nEmpfangene Bytes: {network_stats.bytes_recv}')

    root.after(1000, update_labels)

update_labels()

Die Funktion update_labels() wird alle Sekunde mithilfe der after()-Methode aufgerufen. Die after()-Methode nimmt zwei Parameter: die Zeit in Millisekunden und die aufzurufende Funktion.

Führe das Projekt aus

Um das Projekt auszuführen, füge folgenden Code am Ende Ihrer Datei hinzu:

root.mainloop()

Schließlich wechsel zu Ihrem Desktop und führe das Projekt mit dem folgenden Befehl aus:

python linux_system_monitor.py

Screenshot des Projektausführungsbefehls

Zusammenfassung

In diesem Projekt haben Sie gelernt, wie Sie mithilfe von Python und der Tkinter-Bibliothek einen Linux-Systemmonitor erstellen. Der Systemmonitor zeigt Echtzeitinformationen über die CPU, den Arbeitsspeicher, die Festplattennutzung und die Netzwerkstatistiken an. Indem Sie den Schritt-für-Schritt-Anweisungen folgen und den Code ausführen, haben Sie erfolgreich einen funktionierenden Systemmonitor erstellt.

✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben