程序员开发实例大全宝库

网站首页 > 编程文章 正文

QT中的MVC模式(mvc模式)

zazugpt 2024-10-14 20:13:40 编程文章 17 ℃ 0 评论

做界面开发呢不免会遇到表格、树等等展示页面,这种情况下Qt开发呢就会用到MVC模式。我相信做界面开发的对MVC模式不陌生,但是在Qt中把C(controller)弱化了,叫MVD更合适,model、view及delegate。model负责数据,view负责展示数据,degelate负责协调model和view的数据。view不直接接触数据,而是从model中获取,各司其职。我们要写自己的model、view、delegate等只需要继承就可以。

Qt的“MVD”模式的结构大概如下图:

这样的框架好处是很明显的:
- 高重用性:一个模型可以有多个视图,同样一个视图也可以对应多个模型
- 低耦合:因为模型与视图分离,所以可以独立的拓展和修改而不产生相互的影响
- 快速开发和便捷部署

举个最简单的例子,并不是完整的代码只是mvd的设置方式,如下。

{
     QStandardItemModel model(4, 2);
     QTableView tableView;
     tableView.setModel(&model);
     SpinBoxDelegate delegate;
     tableView.setItemDelegate(&delegate);
     for (int row = 0; row < 4; ++row) {
         for (int column = 0; column < 2; ++column) {
             QModelIndex index = model.index(row, column, QModelIndex());
             model.setData(index, QVariant((row+1) * (column+1)));
         }
 }

更多知识可以查看Qt帮助文档。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表