实验集合管理器

该代码定义了一个用于管理和监控多个进程的图形用户界面(GUI)应用程序。

环境变量设置

代码通过检查操作系统平台设置了 QT_SCALE_FACTOR 环境变量,以调整 MacOS 上的缩放比例。

SingleProcess 类

SingleProcess 类用于表示单个可管理的进程。以下是该类的详细分析:

初始化方法
  • __init__ 方法
    • 初始化类实例,并设置初始状态或配置。
    • 接受 scriptnameactivecategoryparent 作为参数。
    • 根据操作系统平台设置 Python 解释器路径。
    • 创建和配置按钮、布局和样式表。
    • 配置定时器以定期更新进程状态。
进程管理方法
  • startProcess 方法

    • 停止现有进程(如果有)。
    • 使用 subprocess.Popen 启动新的进程。
    • 更新按钮状态。
  • stopProcess 方法

    • 停止现有进程,根据需要选择终止或强制杀死进程。
    • 更新按钮状态。
  • updateStatus 方法

    • 定期检查进程状态并更新按钮颜色以指示进程是否运行。
析构方法
  • __del__ 方法
    • 确保在对象销毁时停止进程。

ProcessManager 类

ProcessManager 类用于管理多个 SingleProcess 实例。以下是该类的详细分析:

初始化方法
  • __init__ 方法
    • 初始化类实例,并设置初始状态或配置。
    • 读取配置文件,创建 SingleProcess 实例,并将其添加到布局中。
    • 设置窗口样式和布局。
事件处理方法
  • closeEvent 方法
    • 在关闭窗口时,停止所有正在运行的进程。
析构方法
  • __del__ 方法
    • 在对象销毁时输出调试信息。

主函数

  • main 方法
    • 设置高 DPI 缩放策略。
    • 创建应用程序实例,设置窗口图标,创建和显示主窗口。
    • 进入应用程序事件循环。

结论

该代码实现了一个进程管理和监控的 GUI 应用程序。通过 SingleProcess 类,用户可以启动、停止和监控单个进程;通过 ProcessManager 类,用户可以批量管理多个进程。代码结构清晰,使用了 PyQt6 的多种控件和信号槽机制来实现用户交互和数据更新。