はじめに
このプロジェクトでは、Python と Tkinter ライブラリを使って Linux システムモニタを作成する方法を学びます。システムモニタは、CPU、RAM、ディスク使用状況、およびネットワーク統計に関するリアルタイム情報を表示します。
👀 プレビュー

🎯 タスク
このプロジェクトでは、以下を学びます。
- Tkinter を使ってグラフィカルユーザーインターフェイス(GUI)を作成する方法。
psutilライブラリを使ってリアルタイムのシステム情報を取得する方法。- CPU 使用率、RAM 使用率、ディスク使用率、およびネットワーク統計を表示する方法。
🏆 成果
このプロジェクトを完了すると、以下のことができるようになります。
- Python で Tkinter を使って GUI を作成する。
psutilライブラリを使ってシステム情報を取得する。- リアルタイムデータでラベルを更新する。
- フレームとノートブックウィジェットを使って情報を整理する。
プロジェクトファイルを作成する
linux_system_monitor.py という名前のファイルを作成し、テキストエディタで開きます。
cd ~/project
touch linux_system_monitor.py
GUI を作成する
システムモニタのグラフィカルユーザーインターフェイス(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)
上記のコードでは、システム情報の各カテゴリ用に 4 つのフレームを作成しています。padding パラメータは、各フレームの周りに 10 ピクセルの余白を追加します。
ノートブックにフレームを追加する
ノートブックにフレームを追加するために、以下のコードを追加します。
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')
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() メソッドを使って 1 秒ごとに呼び出されます。after() メソッドは 2 つのパラメータを取ります。ミリ秒単位の時間と呼び出す関数です。
プロジェクトを実行する
プロジェクトを実行するには、ファイルの末尾に以下のコードを追加します。
root.mainloop()
最後に、デスクトップに切り替えて、以下のコマンドを使用してプロジェクトを実行します。
python linux_system_monitor.py

まとめ
このプロジェクトでは、Python と Tkinter ライブラリを使って Linux システムモニタを作成する方法を学びました。このシステムモニタは、CPU、RAM、ディスク使用率、およびネットワーク統計に関する実時情報を表示します。手順を追ってコードを実行することで、機能するシステムモニタを成功裏に作成しました。



