在 Qt/C++ 中制作可编辑的流程图

Posted

技术标签:

【中文标题】在 Qt/C++ 中制作可编辑的流程图【英文标题】:Making an editable flowchart in Qt/C++ 【发布时间】:2014-10-05 23:40:09 【问题描述】:

我正在制作一个可编辑的流程图,但我在 Qt 的概念上遇到了很多问题。我尝试了许多不同的方法来实现类,从QTreeWidgetQTableWidget 到只使用一堆简单的QPushButtons

理想情况下,我希望有一个设置,我可以右键单击流程的每个部分并对其进行编辑。除了具有拖放功能来重新排列流中的对象之外。试图找到一个可以一起使用的类/类来实现这一目标一直是一场斗争。

什么类最适合这个应用程序;特别是 GUI 类?编辑的实际内容不应该与我正在寻找我可能错过的建议或方法的 GUI 相关。除了功能之外,它不必看起来那么花哨。矩形和直线就足够了。

到目前为止,我知道如何使用和实现 contextMenus 和常规菜单来包含我需要的所有操作,但现在我需要找到一个与我的计划兼容并且可以保存数据的模型和视图。 (这是最简单的部分;为此我有自己的自制课程)

我是 Qt 和 C++ 的新手。 (对面向对象编程并不陌生,只是语法和 API 不同。)

我正在寻找的流程图是这样的:

或者你可以谷歌“流程图”(断章取意,我不需要颜色)

提前致谢。我还没有找到我理解的解决方案;或者使用 Qt 硬编码。任何建议表示赞赏。

【问题讨论】:

我还没有弄清楚,但经过几个小时的研究,我在询问这个网站后发现了一个更好的解决方案。 QGraphicsView 看起来很有希望。 你试过 QML 吗?它是 Qt-Framework 的一部分,是一种基于 javascript 的语言,专为 UI-Tasks/Design 而设计,可以从 C++ 轻松访问。 【参考方案1】:

有一个Diagram Scene Example 使用Graphics View 框架来制作流程图。这是一个应用程序,您可以在其中添加流程图形状和文本并通过箭头连接形状。形状、箭头和文本可以被赋予不同的颜色,并且可以改变文本的字体、样式和下划线。

您可以查看代码并了解如何创建自定义图形项目以及处理鼠标事件和项目移动。

【讨论】:

谢谢,我发现这很有帮助。我刚刚找到的文档并没有很好地解释它。这个例子有很大帮助。我会让你知道情况如何。你认为我能够将物体“卡入”到位吗?我不需要该功能,但我正在研究它以获得更整洁的外观。【参考方案2】:

您可以使用 QCustomPlot 库。它支持矩形和其他形状的项目和线条等。它只会让您的工作更轻松。

http://www.qcustomplot.com/

【讨论】:

以上是关于在 Qt/C++ 中制作可编辑的流程图的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Qt 中制作部分可编辑的树模型

如何在设计师的“收藏编辑器窗口”中制作可编辑的对象?

如何制作可编辑的假剑道网格特定列?

Mailchimp - 如何制作可编辑的链接

如何在 PyQT 中制作实时更新的可编辑小部件

如何在表单上制作可编辑的组合框