QT案例 使用QGraphicsView和命令模式设计完成流程图功能软件,参考QT官方流程图案例【diagramscene】
创始人
2025-05-29 07:23:52
0

之前总结资料时候,看到一个Qt实现流程的专栏,后面就想着参考这个项目和官方的【diagramscene】项目,自己再写一个流程图软件来总结学习下,于是就想到使用QGraphicsView来完成相关功能,再使用命令模式来优化使用过程,再通过XML保存和加载记录等。
耗时大半个月,终于完成;具体内容讲解会按功能,划分为多个文章,当前为整个内容导读。

导读

    • 开发软件版本
    • 获取资源文件
    • 案例程序界面
    • Gif运行示例
      • 快捷键说明
    • 可执行程序下载
    • 参考案例

开发软件版本

开发软件:Qt Creator 5.13.1
使用库:XML . SVG

获取资源文件

经过多次的尝试,发现使用QGraphicsRectItem,或QGraphicsPathItem,或QGraphicsPixmapItem来实现流程图的过程,可选过程、决策、数据、等单元时过于复杂且样式难看,后来通过查看WPS的资源文件发现是直接使用的SVG文件,就可以使用 QGraphicsSvgItem类实现相关功能:
PNG参考路径:
WPS\Office\11.1.0.13703\office6\mui\default\resource\autoshape\tempRes32x32
SVG参考路径:
WPS\Office\11.1.0.13703\office6\mui\default\resource\autoshape\tempRes
在这里插入图片描述
注:案例在实现功能过程只使用了flowchart 文件夹中的要素,其实整个案例可以都使用svg文件包括连接线文本之类的,不过由于过于复杂就放弃了。

案例程序界面

界面整体使用 Fusion 样式,左侧流程控制单元使用 FlowLayout 布局能自适应宽度布局,右侧是整个流程显示区域:
在这里插入图片描述
具体功能实现主要是:
1.左侧按钮使用FlowLayout 布局,参考学习官方的FlowLayout案例;
2.实现把左侧 QToolButton 流程单元拖拽到右侧 QGraphicsView 内容中;
3.重构QGraphicsTextItem 实现文本内容显示 ,包括Html内容的显示
4.重构QGraphicsSvgItem 实现外接矩形的拖拽拉伸
5.重构QGraphicsLineItem 实现两个图元之间的连续,并跟随移动
6.实现图元拖拽时,图元对象之间的磁吸线功能
7.定义一个命令角色基类 ,定义个请求者角色对象,完成命令模式设计
8.生成多个命令对象,用于对界面删除图元,新增图元,连线图元等操作的执行与撤销动作
9.通过xml文件格式保存和读取历史流程记录
整个案例软件的功能简单,模块功能分明。充分的展示了项目开发工作中常用的一些功能很值得学习借鉴;
功能图解:
请添加图片描述

Gif运行示例

快捷键说明

画框选择拖拽
双击编辑本文
长按shift 加鼠标左键连线
选中后按delete删除
Ctrl加S 保存
Ctrl 加Z 撤销动作
Ctrl加Y 执行动作
按住鼠标中键拖拽
请添加图片描述

可执行程序下载

测试 QT 实现流程图案例的可执行程序 不是源码

参考案例

官方 diagramsceneFlowLayout 案例
Qt开发技术:QtSVG介绍、使用和Demo*
Qt (高仿Visio)流程图组件开发(一) 效果展示及基本开发框架构思*

相关内容

热门资讯

原创 小... 与《S家同行》番外篇的剧情再次更新!这次,汪小菲仅以客串身份出现,真正的主角变成了小S与吴宗宪父女。...
柔性劝导+制度规范:青塔街道开... 为深入推进生活垃圾分类工作,增强辖区居民的垃圾分类意识,近日,青塔街道综合行政执法队联合长安新城第一...
眼镜店广告混入中学录取通知书,... 7月中旬,有学生家长反映情况称,湖南常德多所中学向新生寄送的高中录取通知书中,夹带了眼镜店广告宣传单...
万丰奥威:通过法律、法规及监管... 证券之星消息,万丰奥威(002085)07月23日在投资者关系平台上答复投资者关心的问题。 投资者提...
送到《长安的荔枝》,路上遇到哪... 追剧学法 本报记者 邹星宇 近日,古装剧《长安的荔枝》热播。剧中,在大唐年间,长安小吏李善德被人设计...
ST岭南再陷近3亿债务诉讼泥潭... ST岭南(002717)7月23日晚公告称,近日收到东莞市中级人民法院送达的《传票》《民事起诉状》等...
50岁保安提前1小时到岗后猝死... “50岁保安提前1小时到岗猝死, 用工方认为在上班时间前猝死, 不算工伤” 的消息引发关注。 据报道...
视频公布!俄国防部:俄军图-9... 【环球网报道】据俄新社等俄媒报道,俄罗斯国防部23日发布声明称,俄军图-95MS战略轰炸机在白令海中...
东北大学6名学生溺亡,涉事矿企... 极目新闻记者 郭迩 据内蒙古呼伦贝尔市应急管理局消息,7月23日10时20分许,东北大学6名学生在中...
热点聚焦之“反内卷”:价格领域... 摘要 2025年7月1日,中央财经委会议再次强调“治理企业低价无序竞争”的问题,市场对本次会议是否释...