# Project-Mini **Repository Path**: codepool_admin/python ## Basic Information - **Project Name**: Project-Mini - **Description**: 基于python开发的编写项目计划的小工具 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-05-20 - **Last Updated**: 2026-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 一、Project-Mini简介 Project-Mini(简称P-MINI)是一款轻量级但功能完善的项目计划编制工具,专为项目管理人员、开发团队和需要进行任务规划的用户设计。该工具采用Python开发,结合直观的图形界面与强大的任务管理算法,帮助用户高效地制定、跟踪和优化项目计划。 ![输入图片说明](screenshot/%E4%B8%BB%E7%95%8C%E9%9D%A2.png) ## 1、核心功能 Project-Mini提供了丰富的项目管理功能,主要包括: **任务规划与编辑**:支持任务的创建、修改、删除、复制、剪切和粘贴操作,以及任务的升级和降级功能,方便用户灵活调整项目结构。 **依赖关系管理**:允许用户设置任务之间的前置关系,并能根据这些依赖关系自动计算和更新任务的开始日期、结束日期,以及ES(最早开始时间)、EF(最早完成时间)、LS(最晚开始时间)、LF(最晚完成时间)等关键参数。 **关键路径分析**:系统能够自动识别并标记关键任务,帮助用户识别项目中的关键路径,合理分配资源。 **甘特图可视化**:提供直观的甘特图展示功能,让用户能够清晰地查看任务的时间安排和进度情况。 **文件管理**:支持项目计划的新建、打开、保存和另存为操作,并能够将项目数据导出为Excel格式,方便与团队成员共享和协作。 ## 2、技术实现 Project-Mini采用模块化设计,主要包含以下几个核心模块: **ProjectClass**:项目管理的核心类,负责任务数据的维护、依赖关系的处理、日期的自动计算以及文件的读写操作。 **GanttClass**:负责甘特图的绘制和交互功能,提供任务的可视化展示。 **ProjectMini**:主程序界面,集成了上述模块,提供用户与系统交互的桥梁。 项目采用了以下关键技术和第三方库: **Python标准库**:利用tkinter构建图形界面,使用json处理数据存储,借助datetime处理日期计算。 **Pillow (11.3.0)**:图像处理库,用于项目中图标和图像的加载与显示。 **python-dateutil (2.9.0.post0)**:日期处理增强库,提供了更灵活的日期计算和规则设定功能。 **tkcalendar (1.6.1)**:日历控件扩展库,为用户提供直观的日期选择界面。 **openpyxl**:Excel文件处理库,支持项目数据的导出功能。 **PyInstaller**:打包工具,采用onefile方式将整个应用程序打包为单个可执行文件,并将所需资源(如图标文件)一并打包。 ## 3、软件特点 **界面简洁直观**:采用清晰的树状列表与甘特图相结合的布局,让用户能够一目了然地了解项目结构和时间安排。 **操作便捷高效**:提供丰富的右键菜单和快捷键支持,简化用户操作流程,提高工作效率。 **智能计算能力**:通过任务依赖关系自动计算和更新任务日期,减轻用户手动调整的负担。 **可移植性强**:支持Windows平台,通过打包技术确保程序在不同环境下的稳定运行。 **数据兼容性好**:支持项目数据的导入导出,方便与其他工具和团队成员协作。 Project-Mini从2025年8月开始开发,经过不断优化和完善,目前已成为一款功能完备、性能稳定的项目计划编制工具,适用于各类中小型项目的规划与管理。无论是软件研发、工程建设还是活动策划,Project-Mini都能帮助用户更好地掌控项目进度,提高项目执行效率。 # 二、安装步骤 ## 1、下载python安装包 版本3.9及以上均可,本安装步骤以python 3.13.7版本为例,如已经下载过python且版本符合要求则可以跳过此步骤。下载地址:https://www.python.org/ ![输入图片说明](screenshot/%E4%B8%8B%E8%BD%BDpython%E5%AE%89%E8%A3%85%E5%8C%85.png) ## 2、安装python 按照python安装程序步骤进行安装,并记录安装的路径,用于后续执行py文件时用。 默认python的安装路径为:C:\Users\用户名\AppData\Local\Programs\Python\Python313 本安装事例的用户名为:nathan 安装成功后的目录结构如下: ![输入图片说明](screenshot/%E5%AE%89%E8%A3%85python.png) ## 3、安装Project-Mini应用程序需要用到的库。 所有依赖库都在Project-Mini\requirements.txt中。本安装步骤例子中,Project-Mini目录存放在桌面,安装路径为:E:\desktop\Project-Mini。 键盘输入WIN + r,然后在弹出的对话框中输入cmd,如下图: ![输入图片说明](screenshot/%E5%AE%89%E8%A3%85%E5%BA%94%E7%94%A8.png) 在“命令提示符”窗口中执行命令: C:\Users\nathan\AppData\Local\Programs\Python\Python313\Scripts\pip install -r E:\desktop\Project-Mini\requirements.txt ![输入图片说明](screenshot/%E5%AE%89%E8%A3%85%E5%BA%94%E7%94%A82.png) ## 4、启动Project-Mini应用程序。 进入Project-Mini的安装目录:E:\desktop\Project-Mini 执行命令:C:\Users\nathan\AppData\Local\Programs\Python\Python313\python ProjectMini.py 如果出现找不到某个Module: ![输入图片说明](screenshot/%E5%90%AF%E5%8A%A8%E5%BA%94%E7%94%A8.png) 则可以单独安装这个Module: 执行命令:C:\Users\nathan\AppData\Local\Programs\Python\Python313\Scripts\pip install python-dateutil # 三、使用手册 ## 1、启动Project-Mini应用程序 执行命令:C:\Users\nathan\AppData\Local\Programs\Python\Python313\python ProjectMini.py ![输入图片说明](screenshot/%E5%90%AF%E5%8A%A8%E5%BA%94%E7%94%A82.png) ## 2、新建项目 - 点击“文件”->“新建”,输入项目名称 ![输入图片说明](screenshot/%E6%96%B0%E5%BB%BA%E9%A1%B9%E7%9B%AE.png) - 点击“确认”按钮后,项目创建完成 ![输入图片说明](screenshot/%E6%96%B0%E5%BB%BA%E9%A1%B9%E7%9B%AE2.png) ## 3、新建任务 - 点击“任务”->“新建任务”,或者点击快捷命令图标“”: ![输入图片说明](screenshot/%E6%96%B0%E5%BB%BA%E4%BB%BB%E5%8A%A1.png) - 任务创建成功后,会在项目计划列表中出现新增的任务: ![输入图片说明](screenshot/%E6%96%B0%E5%BB%BA%E4%BB%BB%E5%8A%A12.png) ## 4、修改任务的名称、开始日期、结束日期、前置任务 - 用鼠标双击项目计划表中的任务,弹出修改窗口: ![输入图片说明](screenshot/%E4%BF%AE%E6%94%B9%E4%BB%BB%E5%8A%A1.png) - 输入修改后的任务名称、工期、开始日期、完成日期、前置任务。前置任务只需要输入前置任务编号,通过逗号“,”分隔即可: ![输入图片说明](screenshot/%E4%BF%AE%E6%94%B9%E4%BB%BB%E5%8A%A12.png) - 点击“确认”完成修改 ![输入图片说明](screenshot/%E4%BF%AE%E6%94%B9%E4%BB%BB%E5%8A%A13.png) 修改成功后,项目计划表中所有任务的开始日期、结束日期会根据前置任务的依赖关系重新计算日期,并将关键任务的名称前打“✓” ## 5、删除任务 - 在项目计划表中选择需要删除的任务,鼠标右键选择“删除”,或通过菜单“任务”->“删除”: ![输入图片说明](screenshot/%E5%88%A0%E9%99%A4%E4%BB%BB%E5%8A%A1.png) ![输入图片说明](screenshot/%E5%88%A0%E9%99%A4%E4%BB%BB%E5%8A%A12.png) - 删除后,项目计划表中所有任务的WBS编号、任务编号、开始日期、结束日期、前置任务会更新: ![输入图片说明](screenshot/%E5%88%A0%E9%99%A4%E4%BB%BB%E5%8A%A13.png) ## 6、插入新任务 该功能是在被选择的任务前插入一个新的任务,插入的新任务与被选择的任务是同一级别,例如:在“任务2”前插入新的任务的步骤为: - 选择插入位置,鼠标右键选择“插入新任务”,或“任务”->“插入新任务” ![输入图片说明](screenshot/%E6%8F%92%E5%85%A5%E4%BB%BB%E5%8A%A1.png) ![输入图片说明](screenshot/%E6%8F%92%E5%85%A5%E4%BB%BB%E5%8A%A12.png) - 插入成功后,会更新项目计划表中所有任务信息: ![输入图片说明](screenshot/%E6%8F%92%E5%85%A5%E4%BB%BB%E5%8A%A13.png) ## 7、降级任务 将任务的级别降低一级,降级后的任务会变成其降级前的兄弟任务的子任务。 例如:将“任务2”降级,则“任务2”就会变成其兄弟任务“任务”的子任务。降级的操作步骤为: - 在项目计划表中选择待降级的任务,点击快捷命令图标“”,或“任务”->“降级任务”: ![输入图片说明](screenshot/%E9%99%8D%E7%BA%A7%E4%BB%BB%E5%8A%A1.png) ![输入图片说明](screenshot/%E9%99%8D%E7%BA%A7%E4%BB%BB%E5%8A%A12.png) - 降级后,同步更新项目计划表中所有任务,“任务”变成父任务后,其工期、开始日期、结束日期将不能修改,而是由其子任务计算而来,计算公式为:开始日期=MIN(所有子任务开始日期),结束日期=MAX(所有子任务结束日期), 工期=结束日期-开始日期。 ![输入图片说明](screenshot/%E9%99%8D%E7%BA%A7%E4%BB%BB%E5%8A%A13.png) ## 8、升级任务 将任务的级别升一级,升级后的任务将与其父任务处于同一级别。 例如:将“任务2”升级,则“任务2”将变为其父任务“任务”的兄弟任务。 升级任务的操作步骤为: - 在项目计划表中选择待升级的任务,点击快捷命令图标“”,或“任务”->“升级任务”: ![输入图片说明](screenshot/%E5%8D%87%E7%BA%A7%E4%BB%BB%E5%8A%A1.png) ![输入图片说明](screenshot/%E5%8D%87%E7%BA%A7%E4%BB%BB%E5%8A%A12.png) - 升级后,同步更新项目计划表中所有任务。 ![输入图片说明](screenshot/%E5%8D%87%E7%BA%A7%E4%BB%BB%E5%8A%A13.png) ## 9、链接任务 将两个及以上的任务关联,使这些任务变成一个任务链,前面的任务作为后面任务的前置任务。 例如:将项目计划表中所有任务都建立依赖关系。则操作步骤为: - 键盘Ctrl + 鼠标左键,选择所有任务,点击快捷命令图标“”,或“任务”->“链接任务”: ![输入图片说明](screenshot/%E9%93%BE%E6%8E%A5%E4%BB%BB%E5%8A%A1.png) ![输入图片说明](screenshot/%E9%93%BE%E6%8E%A5%E4%BB%BB%E5%8A%A12.png) - 链接任务后,同步更新所有任务信息: ![输入图片说明](screenshot/%E9%93%BE%E6%8E%A5%E4%BB%BB%E5%8A%A13.png) ## 10、剪切、复制、粘贴任务 对任务进行剪切、复制和粘贴。支持通过键盘Ctrl + 鼠标左键方式多选。 ## 11、打开文件 打开项目计划文件,项目计划文件是json格式,文件名格式为:项目计划文件名.json。 - 点击菜单“文件”->“打开文件”: ![输入图片说明](screenshot/%E6%89%93%E5%BC%80%E6%96%87%E4%BB%B6.png) - 在打开文件对话框中选择需要打开的文件,点击“打开”: ![输入图片说明](screenshot/%E6%89%93%E5%BC%80%E6%96%87%E4%BB%B62.png) - 打开后,会在主界面展示项目计划、甘特图: ![输入图片说明](screenshot/%E6%89%93%E5%BC%80%E6%96%87%E4%BB%B63.png) ## 12、保存项目 保存当前项目信息到json文件中。 - 点击菜单“文件”->“保存”,则当前项目会保存到json文件中。 ![输入图片说明](screenshot/%E4%BF%9D%E5%AD%98%E9%A1%B9%E7%9B%AE.png) - 保存成功后,主界面底部会提示“保存成功” ![输入图片说明](screenshot/%E4%BF%9D%E5%AD%98%E9%A1%B9%E7%9B%AE2.png) ## 13、另存为 将当前项目另存为其他json文件。 - 点击菜单“文件”->“另存为”: ![输入图片说明](screenshot/%E5%8F%A6%E5%AD%98%E4%B8%BA.png) - 输入新的json文件名,点击“保存”按钮: ![输入图片说明](screenshot/%E5%8F%A6%E5%AD%98%E4%B8%BA2.png) ## 14、导出到EXCEL 将当前项目计划导出到EXCEL文件中。 - 点击菜单“文件”->“导出到EXCEL”: ![输入图片说明](screenshot/%E5%AF%BC%E5%87%BA%E5%88%B0EXCEL.png) - 导出成功后会在主界面底部提示“导出成功”,导出后的EXCEL文件名前缀与项目文件前缀一致: ![输入图片说明](screenshot/%E5%AF%BC%E5%87%BA%E5%88%B0EXCEL2.png) - 导出后的EXCEL文件格式如下: ![输入图片说明](screenshot/%E5%AF%BC%E5%87%BA%E5%88%B0EXCEL3.png) ## 15、设置工作日 设置当前项目的工作日历,包括节假日设置、每周工作日设置。 - 点击菜单“项目”->“设置工作日”: ![输入图片说明](screenshot/%E8%AE%BE%E7%BD%AE%E5%B7%A5%E4%BD%9C%E6%97%A5.png) - 添加节假日、设置每周工作日。例如:设置当前项目周期中,2025年5月1日、2025年10月1日是节假日,节假日纳入任务工期的天数中,设置每周工作日是周一到周五,周六和周日是休息日,休息日也不纳入任务工期的天数中。 ![输入图片说明](screenshot/%E8%AE%BE%E7%BD%AE%E5%B7%A5%E4%BD%9C%E6%97%A52.png) - 设置后点击“保存设置”,则会同步更新项目计划表中所有任务的开始和结束日期: ![输入图片说明](screenshot/%E8%AE%BE%E7%BD%AE%E5%B7%A5%E4%BD%9C%E6%97%A53.png) ## 16、设置甘特图 设置甘特图的进度条厚度、时间刻度线、画布宽度、进度条间隔、首行Y坐标等。 ![输入图片说明](screenshot/%E8%AE%BE%E7%BD%AE%E7%94%98%E7%89%B9%E5%9B%BE.png) - 点击菜单“项目”->“设置甘特图”: ![输入图片说明](screenshot/%E8%AE%BE%E7%BD%AE%E7%94%98%E7%89%B9%E5%9B%BE2.png) - 设置甘特图的,并点击保存设置,保存设置后,甘特图会同步更新。 ![输入图片说明](screenshot/%E8%AE%BE%E7%BD%AE%E7%94%98%E7%89%B9%E5%9B%BE3.png)