Linux-Systemmonitor mit Tkinter

PythonPythonIntermediate
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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.
Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Fortgeschrittener mit einer Abschlussquote von 78% ist. Es hat eine positive Bewertungsrate von 95% von den Lernenden erhalten.

Erstellen der Projekt-Dateien

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

cd ~/project
touch linux_system_monitor.py
✨ Lösung prüfen und üben

Erstellen der grafischen 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
✨ Lösung prüfen und üben

Erstellen des Notebook-Widgets, um Kategorien von Informationen 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.

✨ Lösung prüfen und üben

Erstellen von Frames

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.

✨ Lösung prüfen und üben

Füge die Frames 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.

✨ Lösung prüfen und üben

Erstelle Beschriftungen für die Frames

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.

✨ Lösung prüfen und üben

Befü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.

✨ Lösung prüfen und üben

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
✨ Lösung prüfen und üben

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.