model-view-controller - Qt 流程图应用架构

标签 model-view-controller design-patterns qt architecture

我想在 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/

相关文章:

javascript - MVC中数据库查询后重新加载页面js

model-view-controller - 我可以在 asp.net core 2.0.0 中使用 razor base web 应用程序进行授权吗?

wpf - MVC/MVP/MVVM 什么鬼?

python - 为什么 __init__() 总是在 __new__() 之后调用?

单击按钮时 QTableView 不会更新已编辑的单元格

android - QML 加载,找不到文件

model-view-controller - 与Web应用程序中的三层体系结构相比,MVC有何优势?

c# - 顶级类(主要)中的依赖倒置

ruby-on-rails - Ruby on Rails 中的触发器/回调

c++ - 如何在QT中画一条有角度的线?