QAbstractTableModel ------ Model-View-Control(MVC)架构(3)

本文介绍了QAbstractTableModel类在Qt5中作为Model-View-Control(MVC)架构的一部分,用于创建表格模型。子类化QAbstractTableModel需要实现rowCount(), columnCount()和data()等关键函数,以及处理数据增删的函数如insertRows(), removeRows()等,以确保与视图的同步。同时,对于可编辑和可改变尺寸的模型,还需要实现相应的setData()和headerData()等函数。" 118284474,10543342,SVG矢量图在Android中的应用与适配,"['SVG', 'Android开发', '图像处理', '矢量图形', 'UI设计']
摘要由CSDN通过智能技术生成

QAbstractTableModel类提供一个抽象的模型,可以被子类化来创建表格模型。它继承自QAbstractItemModel。

QAbstractTableModel类提供了一个抽象接口,在该类中数据被表示为一个二维的阵列。这个类不能直接使用,要子类化它。


子类化QAbstractTableModel类

子类化QAbstractTableModel类时,必须要实现这3个函数:rowCount(),columnCount()和data()。index()和parent()函数由QAbstractTableModel类默认实现了。表现良好的模型还应该实现headerData()。

可编辑的模型还应实现setData(),还要实现flags()函数,来返回一个包含Qt::ItemIsEditable的值。

本模型还提供了接口可以改变数据大小,有以下函数的实现:insertRows(),removeRows(),insertColumns()和removeColumns()。在实现这些函数时,在必要时调用合适的函数,才能让与本模型相连接的视图知道数据发生了哪些变化。

1、insertRows()的实现。在向数据结构里插入新行时,必须先调用beginInsertRows()函数,之后必须立即调用endInsertRows()函数。

2、insertColumns()的实现。在向数据结构里插入新列时,必须先调用beginInsertColumns()函数,之后必须立即调用endInsertColumns()函数。

3、removeRows()的实现。在从数据结构里删除行时,必须先调用beginRemoveRows()函数,之后必须立即调用en

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值