以下是一个简单的 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() 函数以每秒更新列表。

GTK3 任务管理器:简单代码示例

原文地址: https://www.cveoy.top/t/topic/nDYa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录