QT-delegate

本文通过一个实例分析了QT-delegate的使用,首先介绍了视图部分,创建了一个4×4的QStandardItemModel来存储定制数据。接着讨论了文件部分,重点讲解了需要重写的四个方法,并解释了在combobox中安装事件过滤器时,如何将this指针转换为combobox代理指针的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        这章联练习了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);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值