【发布时间】:2019-06-28 21:22:48
【问题描述】:
我在 Qt5 中实现了一个类似于 Facebook 的应用程序。现在在我的应用程序中,我只想查看人员的个人资料,添加新的个人资料并查看个人资料的详细信息。我决定为我的应用程序使用 MVC 架构。我想知道视图/控制器如何与模型类交互
这是我目前所拥有的: 我有一些视图/控制器类(因为 QT 似乎将两者混合为一个),它们是:
- SingleProfileView (QWidget)
- MainView (QWidget)
- ProfileListView (QWidget)
每个视图都使用堆叠的小部件实现
- ProfileView (QWidget) 内部有一个堆叠的小部件,其中包含小部件 ProfileListView 和 SingleProfileView
- Mainview (QWidget) 有一个包含 ProfileView 的堆叠小部件
这些是我的数据类
- ProfileModel
- ProfileListModel
- AppModel
AppModel 从 SQL DB 加载数据,并抽象出 DB 函数。
最后一个类是“主类”
- MyApp
如何在 AppModel 和视图之间传递数据?
我在考虑让模型类成为一个单例类,而所有需要模型类的视图都只获取它的实例?
我在说什么可以在这里找到: https://doc.qt.io/archives/qq/qq10-mvc.html
我担心模型和视图/控制器类的耦合过多?这似乎是在玩一个全局变量。
【问题讨论】:
-
嗨,@rjasi 欢迎来到 StackOverflow。请简明扼要地解释您的问题。
-
嗨@TheParam。对不起,如果我的解释太详细了。我的问题是视图/控制器类和我的模型类应该如何在 QT 中相互通信?
-
视图、模型和代理通过通用接口相互通信。您需要的是实现自己的模型(自己覆盖抽象函数)并将它们传递给相应的视图。视图旨在处理模型数据。
标签: c++ qt model-view-controller model-view qtwidgets