Bootstrap

QT-delegate

        这章联练习了QT里的代理。之前学习IOS,MVC是一个很主要的框架。该框架主要将数据、视图、控制器分开。以实现面向对象高内聚、低耦合的特点。
        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);
    
;