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

7

我正在制作一个可编辑的流程图,但在Qt方面概念上遇到了很多问题。我已经尝试过许多不同的类实现方式,包括QTreeWidgetQTableWidget和一组简单的QPushButtons.

理想情况下,我希望能够右键单击每个流程部分并对其进行编辑。除此之外,还希望具有拖放功能以重新排列流程中的对象。我一直在努力寻找可以一起使用以实现这一目标的类或类组。

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

到目前为止,我知道如何使用和实现contextMenus和regular Menus来包含我需要的所有操作,但现在我需要找到一个与我的计划兼容且能够保存数据的模型和视图。(那是容易的部分;我有自己制作的类)

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

我正在寻找的流程图如下:

或者您只需搜索“流程图”(脱离上下文,我不需要颜色)

提前感谢您。我还没有找到我能理解的解决方案;或者使用Qt硬编码的解决方案。任何建议都将不胜感激。


我还没有想明白,但在研究了几个小时之后,在我询问这个网站之后,我发现了一个更好的解决方案。QGraphicsView 看起来很有前途。 - mhag
你尝试过 QML 吗?它是 Qt 框架的一部分,是一个基于 JavaScript 的语言,专门用于 UI 任务/设计,并且可以轻松地从 C++ 中访问。 - Miterion
2个回答

6

有一个Diagram Scene Example,它使用图形视图框架制作流程图。这是一个应用程序,在此应用程序中,您可以添加流程图形状和文本,并通过箭头连接这些形状。可以为形状、箭头和文本指定不同的颜色,还可以更改文本的字体、样式和下划线。

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


谢谢,我觉得非常有帮助。我刚刚找到的文档没有很好地解释它;这个例子帮了我很多。我会告诉你进展如何的。你认为我能否将对象“SNAP”到特定位置?我并不需要这个功能,但我在研究它以获得更美观的外观。 - mhag

1
你可以使用QCustomPlot库。它支持矩形和其他形状的项和线等。这将使你的工作更加容易。

http://www.qcustomplot.com/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接