我想在 Qt 中构建一个流程图应用程序来练习建模 GUI 应用程序。它只有可拖动的框和可以用直线连接的圆圈。
由于这是我的第一个 GUI 应用程序,我不确定通常如何设计这样的项目。这是我的两个设计。
1) 构建一堆模型类(Box、Circle、Line 等)和相关 View (例如 BoxView、CircleView 等)。模型对象具有颜色、x、y、宽度、高度等属性。 View 类是 Qt UI 元素的子类。然后有像 BoxMoveController 这样的 Controller ,它从 UI 接收鼠标事件并适本地更新盒 subview 和盒子模型。或者如果盒 subview 接收到事件,更新自己,然后将事件传递给 Controller 来更新模型可能会更好?现在,我为模型上工作的流程图逻辑创建应用程序逻辑(例如将线连接到框)。当模型发生更新时,UI 会通过模型通知 View 对象来相应地更新自身。
2)忘记模型的东西并构建一个“以 View 为中心”的应用程序。构建一组 Qt UI 元素子类的类(Box、Circle、Line 等)。然后在这些类之上为流程图构建应用程序逻辑。
哪个更好?你将做点什么不同的?
最佳答案
我会选择 graphics view framework .
看看DiagramScene Qt 提供的示例。
它位于您的 Qt examples folder/graphicsview/
.
我相信它会给你一个关于如何以 Qt 方式实现这样一个应用程序的好主意。
关于model-view-controller - Qt 流程图应用架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3669597/