QT里的MV,这里没有了控制器。MVC的原理是控制器控制model,去显示在view上。但model和view之间是互相不交互的。所以在QT里既然没有了控制器,
那么model与view之间是怎么交互的呢?
在QT中,把view和controller合在一起。本质上是将model与绑定在一起。省略了控制的那个过程。并引入了delegate的概念。这里的delegate是将所有与数据编辑或定制显示相关的操作都由它处理。model不存储数据,而是为View与delegate访问数据提供标准的接口。model都会以数据表项的方式进行管理。
接下来以我写的代码为例,做以分析:
part1:视图部分
QStandardItemModel model(4,4);
QTableView tableView;
tableView.setModel(&model);
dateDelegate datedelegate;
ComboboxDelegate combbDelegate;
SpinBoxDelegate spinDelegate;
tableView.setItemDelegateForColumn(1,&datedelegate);
tableView.setItemDelegateForColumn(2,&combbDelegate);