我正在努力使用MVC概念。
我目前的设计:
QGraphicsScene
的子类,它实现了大量属性:
setPropertyAOnSelectedItems
/ getPropertyAOfSelectedItems
setPropertyBOnScene
/ getPropertyBOfScene
QGraphicsView
的子类,它实现了一些属性(如缩放,居中,某些鼠标或手势动作)
包含要编辑的视图和用户工具的UI - 从场景设置/读取属性
其他类似的UI,具有不同的设计和编辑场景属性的子集
阅读如何在Qt中实现MVC,目前我假设场景子类是一个巨大的“模型” - 除了它没有公开Qt的例子中的函数类型...索引,行和列信息似乎没用,并且对大量复杂属性使用data()
似乎......不适用(即使分配了大量“角色”)。
UI将是View ...这将允许多个UI使用相同的模型...
但是什么是控制器?
阅读“瘦”控制器 - 似乎在这种情况下,我可以拥有一个控制器,除了回显从UI,到场景,然后回来的信息之外什么都不做......而这似乎没用!
我会在哪里进行范围检查/有效检查/单位转换?这是控制器的作用吗?
我希望将Validation类分开 - 在MVC层次结构中哪个位置?
我试图阅读并调整MVC概念以解决我的问题,但我只是看不出如何将其分解......