GTK3 任务管理器:简单代码示例
以下是一个简单的 GTK3 任务管理器代码示例,它使用 Python 和 psutil 模块来获取系统中所有进程的信息并将其显示在 GTK3 列表视图中。
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, GLib
import psutil
class TaskManager(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title='Task Manager')
self.set_default_size(600, 400)
# 创建列表视图
liststore = Gtk.ListStore(str, float, str)
self.treeview = Gtk.TreeView(model=liststore)
# 创建列
self.create_column('Name', 0)
self.create_column('CPU %', 1)
self.create_column('Memory %', 2)
# 创建滚动窗口
scrolledwindow = Gtk.ScrolledWindow()
scrolledwindow.add(self.treeview)
self.add(scrolledwindow)
# 更新任务列表
GLib.timeout_add(1000, self.update_list)
def create_column(self, title, column_id):
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(title, renderer, text=column_id)
self.treeview.append_column(column)
def update_list(self):
# 清空列表
liststore = self.treeview.get_model()
liststore.clear()
# 获取所有进程
processes = psutil.process_iter()
# 遍历进程
for process in processes:
try:
# 获取进程名称、CPU 使用率和内存使用率
name = process.name()
cpu_percent = process.cpu_percent()
memory_percent = process.memory_percent()
# 添加到列表
liststore.append([name, cpu_percent, memory_percent])
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
# 继续更新列表
return True
win = TaskManager()
win.connect('destroy', Gtk.main_quit)
win.show_all()
Gtk.main()
该程序使用 psutil 模块获取系统中所有进程的名称、CPU 使用率和内存使用率,并将它们显示在 GTK3 列表视图中。使用 GLib.timeout_add() 方法调用 update_list() 函数以每秒更新列表。
原文地址: https://www.cveoy.top/t/topic/nDYa 著作权归作者所有。请勿转载和采集!